Как настроить синхронизацию времени с интернетом?

Аватар пользователя admin

Для синхронизации времени используется протокол NTP. Есть два варианта: поднятие собственного NTP-сервера, который будет в online режиме синхрозировать время по динамическому списку адресов с серверами точного времени и просто периодически (например раз в час) вызывать утилиту ntpdate, где в качестве параметра указывать один из доступных открытых серверов точного времени в Интернете. Последний вариант наиболее прост и не требует никаких настроек, а также обеспечивает довольно хорошую точность.

Откройте /etc/crontab, впишите туда строчку:

16 * * * * root /usr/sbin/ntpdate ntp0.nl.net >/dev/null 2>&1

Поясняю: каждый час в 16 минут, каждый день, каждого месяца, мы запускаем команду /usr/sbin/ntpdate (проверьте по этому ли пути она находится в вашем дистрибутиве Linux) для синхронизации времени с сервером ntp0.nl.net. Оставшийся хвостик ">dev/null 2>&1" говорит о том, что мы не желаем получать никаких сообщений от команды ntpdate. Возможно это не так, тогда можете не указывать его, но учтите, что тогда cron будет каждый час присылать вам письмо о том как прошла синхронизация с сервером.

В дистрибутивах, основанных на RHEL8 (т.е. OracleLinux 8, CentOS 8 и т.д.) такой номер не пройдёт, потому что больше утилита ntpdate в дистрибутиве не поставляется. По идее вы должны настроить и использовать chronyd, запуская его в качестве службы точного времени. Но если вы не хотите использовать chronyd в режиме службы, то его можно вызывать по cron'у аналогично ntpdate:

chronyd -q 'server ntp0.nl.net iburst' >/dev/null 2>&1

Как и в случае ntpdate, которая не сработает если запущен сервер ntpd, указанная выше команда не сработает, если chronyd запущен.

0
Ваш рейтинг: Нет