Linux синхронизация времени centos

Установка и настройка NTP-сервера на Linux CentOS 8

Сервер синхронизации времени NTP помогает актуализировать время на всех узлах сети. В инструкции рассказано о его установке и настройке на Linux CentOS 8.

Установка сервера

В CentOS 8 пакетом для синхронизации времени является chrony — он пришел на смену ntpd.

Устанавливаем его командой:

dnf install chrony

Разрешаем автозапуск и стартуем сервис:

systemctl enable chronyd —now

Настройка NTP

Открываем файл с настройками:

Настраиваем серверы, с которых наш NTP будет брать эталонное время. Например:

#pool 2.centos.pool.ntp.org iburst
server 192.168.0.100 iburst prefer
server 192.168.0.110 iburst
server 127.127.1.0

  • pool — указывает на выполнение синхронизации с пулом серверов.
  • server — указывает на выполнение синхронизации с сервером.
  • iburst — отправлять несколько пакетов (повышает точность).
  • prefer — указывает на предпочитаемый сервер.
  • server 127.127.1.0 — позволит в случае отказа сети Интернет брать время из своих системных часов.

* в данном примере мы закомментировали указанный пул по умолчанию и добавили свои серверы 192.168.0.100 и 192.168.0.110.

* в данном примере мы разрешаем синхронизацию времени с нашим сервером для узлов сети 192.168.0.0/255.255.255.0.

systemctl restart chronyd

Добавляем правило в брандмауэр:

firewall-cmd —permanent —add-service=ntp

Тестирование

Проверить состояние получения эталонного времени можно командой:

Мы должны увидеть, примерно, следующее:

210 Number of sources = 2
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 127.127.1.0 0 6 0 — +0ns[ +0ns] +/- 0ns
^* server-01.dmosk.local 2 6 17 55 +629us[+1184us] +/- 152ms

Отобразить текущее время можно командой:

Для настройки часового пояса применяем команду:

timedatectl set-timezone Europe/Moscow

* московское время (GMT+3).

Проверить отдачу времени сервером можно введя команду на другом Linux:

* где 192.168.0.15 — адрес нашего NTP-сервера.

Правильный ответ имеет следующий вид:

ntpdate[3576]: adjust time server 192.168.0.15 offset 0.017657 sec

* время было рассинхронизировано на 0.017657 секунд.

Настройка клиента Linux

Для клиентов можно выбрать несколько стратегий настройки — мы рассмотрим 3:

  1. С помощью Chrony.
  2. Сервис ntpd.
  3. Утилиты ntpdate.

Начнем с Chrony.

Chrony

Команда для установки зависит от типа дистрибутива Linux.

а) Ubuntu / Debian:

apt-get install chrony

yum install chrony

После установки открываем /etc/chrony.conf:

. и в качестве сервера оставляем только наш локальный сервер, например:

server 192.168.156.215 iburst

Разрешаем автозапуск сервиса:

systemctl enable chronyd || systemctl enable chrony

systemctl restart chronyd || systemctl restart chrony

Источник

CentOS: Настройка даты и времени, пояса, синхронизация с NTP

В данной статье я расскажу, как настроить время, дату и изменить часовой пояс(timezone) в Linux CentOS, как выполнять синхронизацию времени с NTP сервером и исправить типичные ошибки.

На серверах существует два вида часов. Аппаратные (real time clock), которые работают даже при выключенном сервере и программные часы операционной системы. Показания этих двух часов, могут отличаться. При этом, после запуска операционной системы, программные часы опираются на показания аппаратных и в дальнейшем могут корректироваться системой.

Абсолютное большинство программ в своей работе используют время программных часов.

Hwclock: настройка аппаратного (системного) времени

Чтобы проверить аппаратное время в Linux используется утилита hwclock:

  • hwclock —localtime — проверка аппаратного времени без поправки
  • hwclock —utc – проверка времени с условием, что аппаратные часы идут по времени UTC

[root@server etc]# hwclock —localtime

[root@server etc]# hwclock —utc

Чтобы установить аппаратное время равное системному времени, выполните команду:

Читайте также:  Прошивка роутер tftp linux

Чтобы установить конкретное время, выполните:

# hwclock —set —date «27 Nov 2019 17:30»

Ручная настройка времени в CentOS

В Linux за программное время отвечает утилита date или timedatectl. Если вызывать утилиту date без параметров, она покажет текущее время на сервере:

[root@server etc]# date

Если вы хотите выставить время вручную, можно воспользоваться утилитой date с дополнительными ключами:

Где MM – месяц, DD — день, hh – час, mm – минуты.

Для получения расширенной информации о дате, времени, поясе, синхронизации, настройках перехода на сезонное (летнее/зимнее) время (DST), используется утилита timedatectl. Она дает более подробную информацию о настройках времени на сервере.

Timedatectl также позволяет изменить время:

# timedatectl set-time ‘2019-11-27 17:51:00’

Настройка часового пояса в CentOS

Чтобы время на сервере CentOS Linux соответствовало вашему часовому поясу, его можно изменить вручную. Для этого есть две утилиты:

  • timedatectl
  • tzdata

Чтобы изменить часовой пояс через утилиту timedatectl, выполните команду:

# timedatectl set-timezone Europe/Moscow

Или же можно использовать tzdata. Чтобы воспользоваться данным методом, нужно заменить файл /etc/localtime на нужный вам. Весь список часовых поясов, расположен в директории /usr/share/zoneinfo/. Заменим часовой пояс на Asia/Almaty. Делаем бэкап файла locatime:

# mv /etc/localtime /etc/localtime.bak

Создаем симлинк на нужный часовой пояс:

# ln -s /usr/share/zoneinfo/Asia/Almaty /etc/localtime

Настройка синхронизация времени по NTP в CentOS

Вы можете настроить автоматическую синхронизацию времени на вашем сервере с внешним NTP (Network Time Protocol) сервером. Для этого нужно установить сервис ntp. Например, в CentOS 7 установка выполняется через yum:

# yum install ntp -y

После установки, нужно запустить сервис ntpd и добавить его в автозагрузку:

# systemctl start ntpd.service
# systemctl enable ntpd.service

Проверим, что сервис запущен:

[root@server Asia]# service ntpd status

В файле /etc/ntp.conf нужно указать сервера, с которыми нужно синхронизировать время:

Синхронизация времени выполняется последовательно. Если недоступен первый NTP сервер, идет обращение ко второму и т.д.

Можно вручную синхронизировать время с указанным NTP сервером командой:

По умолчанию, ntpd включает в системе режим “11 minute mode”, то есть время будет синхронизироваться каждые 11 минут. Если вы не можете использовать демон ntpd, вы можете настроить синхронизацию времени по крону, добавьте в крон следующую команду:

Используем chronyd для синхронизация времени в CentOS 8

Для CentOS 8 из официальных репозиториев убрали ntp и ntpdate, поэтому для синхронизации времени нужно использовать chrony.

Основные преимущества chrony:

  • высокая скорость и точность синхронизции
  • корректная работа при отсутствии доступа к эталонным часам (ntpd требуются регулярные запросы)
  • по-умолчанию не меняет сразу время при синхронизации, чтобы не нарушить работу программ
  • Меньше использует ресурсов

По умолчанию, утилита chrony уже установлена в системе, но если по какой-то причина у вас ее нет, выполните установку:

# dnf install chrony

Как и любой другой сервис, после установки chrony нужно включить и добавить в автозагрузку:

# systemctl start chronyd
# systemctl enable chronyd

Проверим статус сервиса:

Чтобы проверить, что синхронизация работает, выполнитите команду:

Конфигурационный файл chrony/etc/chrony.conf. В нем нужно указать список NTP серверов, которые нужно использовать для синхронизации. Как и у ntp, у chrony есть интерфейс командной строки chronyc. Чтобы проверить информацию о текущих параметрах синхронизации времени, используйте:

Чтобы проверить информацию о серверах синхронизации, выполните команду:

Если вы хотите установить конкретное время и дату вручную, вы можете воспользоваться утилитой date, но перед этим нужно отключить демон chronyd.

Распространённые ошибки при настройке времени в CentOS

В данном разделе, я опишу частые ошибки, которые возникают при работе с утилитами timedatectl, ntp.

При ручной синхронизации времени, у вас может возникнуть подобная ошибка:

Она означает, что у вас запущен демон ntpd, который блокирует ручную синхронизация времени. Чтобы выполнить ручную синхронизацию, остановите демон ntpd:

# service ntpd stop

И запустите синхронизацию заново:

Аналогичная ошибка может возникать и при работе с утилитой timedatectl:

Теперь нужно отключить автоматическую синхронизацию в самой утилите timedatectl:

# timedatectl set-ntp 0

И выполнить команду по установке конкретного времени:

При работе с часовыми поясами, они могут быть не установлены у вас на сервере и создать симлинк для localtime не получится. Для того, чтобы в системе были доступны часовые пояса, установите утилиту tzdata:

Читайте также:  Эквалайзер windows 10 отсутствует

# yum install tzdata -y

Так при ручной синхронизации, часто бывают ошибки вида:

В этом случае проверьте правила firewalld / iptables, и убедитесь, что у вас на сервере открыт UDP порт 123. Так же некоторые хосты синхронизации могут быть недоступны в момент проверки.

Источник

Настройка NTP в CentOS 7

Приветствую! Сегодня разберем довольно простую но полезную вещь — настройку ntp на операционной системе CentOS 7 (6).

Приветствую! Сегодня разберем довольно простую но полезную вещь — настройку ntp на операционной системе CentOS 7 (6).

Для чего это делать? Это делается для того, чтобы на вашем сервере было точное время. А если у вас в сети есть несколько серверов — то это просто необходимая вещь. У меня, к примеру, есть несколько zabbix proxy и 1 zabbix server и чтобы данные не разнились, то необходимо, чтобы на все этих серверах было одинаковое время. Время можно синхронизировать в интернете или со своим сервером времени (как это сделано у меня). Про настройку своего сервера времени мы поговорим отдельно. Сейчас разберемся, как настроить свои сервера на синхронизацию времени.

Настройка NTP на CentOS 7

Для начала устанавливаем NTP:

Устанавливаем часовой пояс (временную зону), которая соответсвует вашей. Например у меня это Москва, создаем символическую ссылку:

Далее необходимо указать сервера, с которыми мы будем синхронизировать время. По умолчанию 3 сервера уже есть, можно оставить их, можно добавить свои. Мы добавим свой:
Открываем файл ntp.conf для редактирования:

Находим в нем строчки:
Перед ними пишем наш ntp сервер:

Время синхронизируется последовательно. Если первый в списке сервер будет по какой то причине не доступен, то обращение идет ко второму и т.д.

Теперь давайте вручную синхронизируем время с нашим сервером:

Получаем ответ типа: 15 Sep 10:03:56 ntpdate[4843]: step time server 192.168.0.68 offset -0.012084 sec — значит синхронизация прошла успешно и время было поправлено на данный период.

Если вы получите ошибку вида: the NTP socket is in use, exiting, значит у вас чем то уже используется порт 123. Попробуйте остановить ntpd следующей командой:
и еще раз запустите синхронизацию:

Теперь добавляем в автозапуск и запускаем нашу службу автоматической синхронизации времени:

Проверить работу ntp можно командой ntpq -p

На этом все, мы настроили автоматическую синхронизацию времени на CentOS7. Эта статья может быть актуальна практически для любого дистрибутива Unix, не только CentOS 7. Если у Вас остались вопросы — задавайте их в комментариях.

Источник

Настройка времени на Linux сервере CentOS

Покупая, а точнее арендуя, сервер за границей (у зарубежного хостинг-провайдера), Вы наверняка сталкивались с ситуацией, что время на нем не совпадает с вашим. Особенно если вы не устанавливали операционную систему самостоятельно, а развертывали ее из предлагаемого хостером образа. Как правило оно идет по времени дата-центра или по гринвичу. По-совести говоря не принципиально в каком часовом поясе сервер, и что показывают часы. Их показания всегда можно скорректировать. Но, согласитесь, что гораздо приятней, когда сервер находится в вашей временной зоне и/или в зоне большинства посетителей вашего сайта.
В этой статье на примере CentOS (red hat linux) я покажу как удаленно изменить время на сервере с операционной системой Linux. Она будет полезна всем кто администрирует Linux server.

Какие часы бывают в Linux

Немного теории. В любом компьютере есть два вида часов. Одни аппаратные (ЧРВ — часы реального времени или RTC — real time clock), которые работают даже при выключенном блоке питания, на это у них есть батарейка на материнской плате. Другие программные, то есть часы операционной системы. Показания этих часов могут различаться. При этом программные часы опираются на показания аппаратных при старте операционной системы. А в дальнейшем могут синхронизироваться через интернет с эталонными и корректировать ход аппаратных.
В большинстве случаев если компьютер работает под управлением операционной системой Windows показания аппаратных и программных часов совпадают. В linux же чаще всего аппаратные часы настраивают по гринвичу (времени нулевого меридиана), а программные по необходимому смещению для часового пояса где расположен сервер.
Абсолютное большинство программ (приложений и сервисов) в своей работе опираются на показания системных (программных) часов.

Читайте также:  Не запускается windows выдает ошибку

Для чего нужно корректировать часы

  • Чтобы избежать вчерашних новостей и публикаций завтрашнего дня. К примеру часы вашего сервера идут по времени Хабаровска, а основные посетители из Европы (разница UTC+11). В такой ситуации вечерний посетитель увидит «завтрашние» даты на сайте. Так как когда в Европе вечер, то в Хабаровске утро следующего дня.
  • Чтобы было удобно настраивать задания Cron.
  • Чтобы время создания файлов совпадало с фактическим и не вводило Вас в заблуждение.

Как настроить время вашего сервера

Проверим, что показывают аппаратные часы, для чего будем использовать три варианта команды hwclock:

Приведенный пример для случая когда аппаратные часы идут по UTC, а сервер настроен на Московский часовой пояс. Особых пояснений требует опция —utc вывод времени производится (формируется) с условием, что аппаратные часы идут по времени UTC. То есть показания должны совпадать с желаемым временем на сервере. Опция же —localtime наоборот показывает время аппаратных часов без всяких поправок.

Несколько полезных команд установки времени аппаратных часов

Устанавливаем время аппаратных часов равное системному:

Устанавливаем время системных часов на основании ЧРВ:

Устанавливаем время равное указанному:

Значение временной зоны

Данные временной зоны для аппаратных часов в Centos хранятся в файле /etc/sysconfig/clock.
Для московской временной зоны в случае когда аппаратные часы идут по UTC он имеет следующее содержимое:

Где ZONE — это наш часовой пояс, UTC говорит о том, что аппаратные часы сервера идут по универсальному времени UTC, ARC в значении false — значит используется нормальное значение века (эпохи) UNIX.
Подробнее по конфигурации файла /etc/sysconfig/clock в CentOS можно почитать в официальной документации.

Системные часы операционной системы CentOS

Для системных (программных) часов CentOS используется команда date.

Приведенный пример для случая когда операционная система использует Московский часовой пояс. Здесь опция —utc говорит, что необходимо показать время нулевого меридиана, то есть без поправок на часовой пояс.

Изменение временной зоны (часового пояса) в CentOS

Для изменения времени системных часов, если их показания не соответствуют необходимому региону, необходимо проделать следующие нехитрые операции.
В начале, сделаем резервную копию существующего файла временной зоны (часового пояса).

Это хорошая практика, когда вы делаете резервные копии оригинальных файлов конфигурации 🙂

Затем, создаем ссылку на необходимую временную зону.

где Europe/Moscow необходимая временная зона. Полный список доступных часовых поясов смотрим в каталоге /usr/share/zoneinfo/.
При необходимости можно установить значение времени вручную:

где MM – месяц, DD – день, hh – час, mm – минуты.
То есть чтобы задать, к примеру, 18 марта 20 часов 15 минут, нужно ввести следующее:

Более подробно о команде date, можно почитать в мануале, выполнив команду:

Настройка сервера времени ntp

Со временем часы могут убегать или отставать, поэтому время от времени их нужно синхронизировать с эталонными. Для этого в CentOS используется демон ntpd.
Установим демон ntpd если его нет в системе:

Однократно синхронизируем время:

Если получили что-то вроде the NTP socket is in use, exiting — значит ntpd демон уже запущен. В этом случае остановим его:

Настраиваем работу ЧРВ в BIOS на время по UTC:

Этой командой мы присвоили значение времени аппаратных часов равным системному времени. Как вы помните, системные часы мы синхронизировали командами выше.
Проверим содержимое файла /etc/sysconfig/clock чтобы система после загрузки правильно выставляла местное время. Для Москвы он должен содержать следующее:

Настраиваем демон ntpd на автозагрузку при старте операционной системы:

Запускаем демон синхронизации времени:

Проверяем системное время командой:

Оно должно совпадать с реальным.
Проверим, синхронизируется ли системное время с серверами эталонного времени (ntp server) и все ли там в порядке командой ntpq -p:

Источник

Оцените статью