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

Сегодня я расскажу, как можно настроить синхронизацию времени в локальной сети.
Для этого нам понадобится сервер. На нём будет установлен демон ntpd, который слушает порт 123 и выдаёт время клиентам.
Приступим.

Сервер

Установим сервер и необходимые утилиты. Они, как правило содержатся в пакете ntp, входящий во все популярные дистрибутивы.

Для slackware это будет выглядеть примерно так:
installpkg /path/to/ntp-4.2.4p0-x86_64-1
Для SUSE:
zypper
Для клонов Red-Hat:
yum install ntp

Да что я вам объясняю, как ставить, вы, наверно, сами прекрасно знаете!
Далее идёт настройка. Файл конфигурации /etc/ntp.conf

#Запрещаем всем всё  
restrict default nomodify notrap noquery  
#Разрешаем клиентам локальной сети делать запросы  
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap  
#Разрешаем себе всё  
restrict 127.0.0.1
    
# Задаём 3 сервера для синхронизации (чем больше, тем точнее,  
# это важно. 3 - минимум). Минимальный период опроса 2^10 сек  
server 0.pool.ntp.org minpoll 10  
server 1.pool.ntp.org minpoll 10  
server 2.pool.ntp.org minpoll 10
    
#оставляем некоторые параметны по умолчанию  
driftfile /var/lib/ntp/drift  
broadcastdelay  0.008  
keys            /etc/ntp/keys
Запускаем сервер ntpd принятым для дистрибутива способом, например
service ntpd start
Для того, чтобы сервер заработал в штатном режиме должно пройти некоторое время. После этого клиенты будут ему доверять.

Клиент.

Для синхронизации клиента можно использовать тот же ntpd, но зачем нам лишний сервер? Есть утилита ntpdate. Будем использовать её.
Вот скриншот для Linux:

А в Windows это делается так:

Но не будем же мы постоянно самостоятельно устанавливать время. Для этого есть планировщик заданий.Создадим конфигурационный файл:

echo "NTPSERVER=ntpserver.localnet" > /etc/ntpdate.conf

Отредактируем /etc/cron.daily/timesync:

#!/bin/sh    


if [ -f /etc/ntpdate.conf ]; then    
. /etc/ntpdate.conf      


if [ -n "$NTPSERVER" ]; then      
# о результате отпишется в системный журнал и будет      
# использовать не превилигированные порты для исходящих пакетов      
/usr/sbin/ntpdate -s -u $NTPSERVER 2>&1 >/dev/null     
 # устанавливаем время на мат. плате в соответствие с системным     
 /sbin/hwclock --systohc 2>&1 >/dev/null    
fi
fi

И всего-то делов.

Grifon Источник


free-templates.ru