Выбор способа зависит от того, насколько сильно отстают часы. Если разница небольшая, то можно использовать первый способ. Если часы сильно отстали или убежали вперед, то не стоит переводить их в одну итерацию — безопаснее будет сделать это плавно.
Для быстрого изменения времени на сервере timeweb.cloud подходит утилита ntpdate
. Для ее установки потребуются права sudo
:
apt-get install ntpdate
Чтобы поправить часы однократно, выполните:
/usr/sbin/ntpdate 1.ru.pool.ntp.org
Здесь ntp pool
— это адрес доверенного сервера, с которым система сверяет время.
Вы можете также настроить автоматическую проверку часов с нужной периодичностью с помощью планировщика cron.
crontab -e
00 1 * * * /usr/sbin/ntpdate 1.ru.pool.ntp.org
Так вы задаете синхронизацию раз в сутки.
Вместо периодичности можно указать условие — например, синхронизировать часы при каждой загрузке. Это делается с помощью cron reboot
.
crontab -e
@reboot /usr/sbin/ntpdate 1.ru.pool.ntp.org
Для плавного изменения времени установите утилиту ntp
Ubuntu и Debian. Работает она следующим образом:
Добавьте Linux ntp:
apt-get install ntp
Сервис добавится в список автозагрузки. Чтобы утилита работала корректно, необходимо настроить конфигурацию. Она хранится в файле /еtc/ntp.conf
. Укажите в нем серверы ntp. Значения могут быть такими:
server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst
Опция iburst
делает синхронизацию более точной, заставляя пересылать не один, а сразу ряд пакетов. Можно также установить предпочтительный источник данных с помощью опции prefer
:
server 0.ubuntu.pool.ntp.org iburst prefer
После каждого изменения конфигурации необходимо перезапускать утилиту:
/etc/init.d/ntp restart
Правила выбора способа такие же. Если нужно устранить разницу в несколько секунд, подойдет первый способ. Для исправления минут и часов лучше применять второй способ.
Чтобы быстро поправить время, используйте ntpdate
. Установите утилиту:
yum install ntpdate
Для однократной синхронизации выполните:
/usr/sbin/ntpdate 1.ru.pool.ntp.org
1.ru.pool.ntp.org
— источник, с которым вы синхронизируетесь.
Чтобы сверка проходила автоматически и с установленной периодичностью, используйте Crontab CentOS. Например, так выглядит настройка ежесуточной проверки:
crontab -e
00 1 * * * /usr/sbin/ntpdate 1.ru.pool.ntp.org
Вместо указания временных промежутков можно указать условие — например, загрузку:
crontab -e
@reboot /usr/sbin/ntpdate 1.ru.pool.ntp.org
Для постепенного изменения времени применяйте ntp CentOS. Добавьте его:
yum install ntp
Включите автозагрузку сервиса:
chkconfig ntpd on
Укажите в файле /etc/ntp.conf
источники точного времени. Например:
server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst
Параметр iburst
делает то же, что и в конфигурации на Ubuntu/Debian — заставляет отправлять ряд пакетов, что увеличивает точность синхронизации.
Перезапустите сервис после изменения конфигурации:
/etc/init.d/ntp restart
А затем заново запустить демона:
/etc/init.d/ntpd start
Синхронизация выполняется с тем источником, который физически находится ближе к вашему серверу. Однако в конфигурации можно прямо указать желаемый регион в поддомене. Например, так:
asia.pool.ntp.org europe.pool.ntp org
Даже если NTP-сервер окажется отключенным от сети, он все еще сможет передать системное время. Для этого достаточно добавить строку:
server 127.127.1.0
Можно ограничить доступ внешних клиентов. Дефолтно выставлены такие параметры:
Notrap
, nomodify
, nopeer
, noquery
устанавливают запрет на изменение параметров сервера. KOD
(kiss of death) предоставляет еще один уровень защиты. Если запросы от клиента приходят слишком часто, то он получает сначала пакет с предупреждением, а затем отключается.
Если нужен неограниченный доступ для локального хоста, установите его командой:
restrict 127.127.1.0
А синхронизировать устройства из локальной сети с сервером поможет следующая строка:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
После внесения любых изменений сервис нужно перезагружать:
service restart ntp
Проверить работу можно командой:
ntpq -p
Она выдает таблицу, в которой указан адрес источника точного времени, уровень сервера, время последней сверки и другие полезные данные.