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

Синхронизация времени — это процесс приведения системного времени компьютера в соответствие с точным временем, передаваемым с серверов в интернете. В Linux для синхронизации времени часто используются протоколы NTP или различные утилиты, такие как ntpdate и ntpd.

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

Ознакомиться с тарифами VPS хостинга можно тут

Основные инструменты для синхронизации времени

1. ntpdate — синхронизация времени вручную

ntpdate — это утилита для синхронизации времени с удалённым сервером NTP. Она используется для однократной синхронизации времени на сервере с указанным NTP-сервером.

Пример использования ntpdate:

sudo ntpdate pool.ntp.org

Эта команда синхронизирует время на вашем сервере с сервером времени pool.ntp.org.

Опции для ntpdate:

  • -u — использование случайного порта для запросов, что может быть полезно, если сервер находится за фаерволом.
  • -q — только проверка времени без изменения локального времени.
  • -d — режим отладки для диагностики ошибок.

2. ntpd — демонт для постоянной синхронизации времени

В отличие от ntpdate, ntpd работает в фоновом режиме и постоянно синхронизирует время на сервере. Он использует протокол NTP для поддержания точного времени в течение продолжительного времени.

Установка ntpd:

Для установки ntpd на различных дистрибутивах Linux можно использовать следующие команды:

  • Debian/Ubuntu:
    sudo apt update
    sudo apt install ntp

  • CentOS/RHEL:
    sudo yum install ntp

Настройка ntpd:

После установки ntpd, можно настроить его, отредактировав файл конфигурации /etc/ntp.conf. В этом файле указываются NTP-серверы, с которыми сервер будет синхронизировать время. Пример:
server 0.pool.ntp.org
server 1.pool.ntp.org

После внесения изменений перезапустите службу ntp:
sudo systemctl restart ntp

Для проверки работы ntpd можно использовать команду:
ntpq -p

Она покажет список серверов, с которыми работает ваш сервер, и их статус.

3. Chrony — альтернатива ntpd

Chrony — это современная альтернатива ntpd для синхронизации времени, которая может быть более точной и быстрой в некоторых случаях. Chrony также используется для синхронизации времени на серверах с нестабильным интернет-соединением или с малой пропускной способностью.

Установка Chrony:

  • Debian/Ubuntu:
    sudo apt update
    sudo apt install chrony

  • CentOS/RHEL:
    sudo yum install chrony

Настройка Chrony:

Для настройки серверов времени в Chrony откройте файл конфигурации /etc/chrony/chrony.conf и добавьте серверы времени:
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst

Перезапустите службу Chrony:
sudo systemctl restart chronyd

4. Использование NTP-серверов из России (RU NTP)

Для синхронизации времени с серверами, расположенными в России, можно использовать RU NTP pool. Это набор серверов, доступных для синхронизации времени для пользователей в России.

Пример настройки сервера NTP для использования российского пула:
server ru.pool.ntp.org

После добавления в конфигурационный файл перезапустите службу NTP.

Синхронизация времени в различных дистрибутивах Linux

1. CentOS 7

Для синхронизации времени на сервере CentOS 7 часто используется ntpd или Chrony. В CentOS 7 Chrony является рекомендуемым методом.

Чтобы установить и настроить Chrony в CentOS 7, выполните следующие шаги:
sudo yum install chrony
sudo systemctl start chronyd
sudo systemctl enable chronyd

2. Debian/Ubuntu

На Debian/Ubuntu по умолчанию используется systemd-timesyncd, но также можно установить и использовать ntpd или Chrony.

Для установки ntpd:
sudo apt install ntp

Для установки Chrony:
sudo apt install chrony

3. FreeBSD

В FreeBSD синхронизация времени осуществляется через службу ntpd. Для её установки и настройки выполните следующие шаги:
sudo pkg install ntp
sudo sysrc ntpd_enable="YES"
sudo service ntpd start

Синхронизация времени с использованием Cron

Для периодической синхронизации времени можно настроить задание в cron. Например, если вы хотите синхронизировать время каждую ночь, добавьте в crontab следующую строку:
0 3 * * * /usr/sbin/ntpdate pool.ntp.org

Эта команда будет выполняться каждый день в 3 часа ночи.

Чтобы перезапустить crontab после внесения изменений:
sudo service cron restart

Или:
sudo systemctl restart cron

Проблемы и решения

  1. Невозможность синхронизации времени: Если время не синхронизируется, убедитесь, что серверы NTP доступны, и проверьте настройки фаервола.

  2. Отставание или опережение времени: Это может происходить, если на сервере не используется корректный источник времени или сервер не может синхронизироваться с интернетом. В таком случае настройте корректные NTP-серверы в конфигурации.

  3. Превышение допустимого отклонения времени: Если время отклоняется на несколько секунд, возможно, проблема с аппаратным временем сервера. В таких случаях рекомендуется использовать аппаратные синхронизаторы времени.

Заключение

Синхронизация времени в Linux — это ключевая часть управления сервером, которая помогает избежать ошибок в приложениях, базах данных и сетевых сервисах. С помощью утилит ntpdate, ntpd и Chrony вы можете настроить точное время на вашем сервере, синхронизируя его с мировыми или локальными серверами времени. Правильная настройка и регулярная синхронизация обеспечат стабильную работу ваших сервисов и приложений.

  • 0 Пользователи нашли это полезным

Помог ли вам данный ответ?

Ищете что-то другое?

mhost.by