Очень многие сервисы для корректной работы требуют точности системного времени. Особенно если используется репликация. Для решения этих проблем есть специальный демон - ntpd
Итак, у нас в распоряжении следующая система
# uname -a Linux centos5.sys-adm.local 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:40 EST 2010 i686 i686 i386 GNU/Linux # cat /etc/redhat-release CentOS release 5.5 (Final) # date Wed Dec 15 08:25:21 EET 2010
Настраиваем временную зону. Для этого достаточно создать символическую ссылку на соответствующую зону в /usr/share/zoneinfo/
# cd /etc # ln -sf /usr/share/zoneinfo/America/New_York localtime
А также вносим изменения в файл /etc/sysconfig/clock, который отвечает за интерпретацию времени, считываемого с аппаратных часов системы.
# cat /etc/sysconfig/clock ZONE="America/New_York" UTC=true ARC=false
После внесения изменений необходимо перегрузить сервер. Проверяем текущую зону
# date Wed Dec 15 01:44:03 EST 2010
Устанавливаем сам пакет
# yum install ntp
Правим основной конфигурационный файл - /etc/ntp.conf
# cat /etc/ntp.conf # For more information about this file, see the man pages # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5). driftfile /var/lib/ntp/drift # Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery # Permit all access over the loopback interface. This could # be tightened as well, but to do so would effect some of # the administrative functions. restrict 127.0.0.1 restrict -6 ::1 # Указываем локальную сеть, которая будет синхронизироваться с нашего сервера restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap # Сервер с которым мы будем производить синхронизацию # Список серверов доступен по адресу http://www.pool.ntp.org/ server europe.pool.ntp.org
Запускаем сам демон
# service ntpd start Starting ntpd: [ OK ]
Смотрим на каких интерфейсах он слушает
# netstat -an | grep 123 udp 0 0 192.168.127.1:123 0.0.0.0:* udp 0 0 127.0.0.1:123 0.0.0.0:* udp 0 0 0.0.0.0:123 0.0.0.0:*
Если ничего не получаем, смотрим сообщение в /var/log/messages
# cat /var/log/messages | grep ntpd Dec 15 02:32:16 centos5 ntpd[3133]: ntpd [email protected] Sat Dec 19 00:58:16 UTC 2009 (1) Dec 15 02:32:16 centos5 ntpd[3134]: precision = 1.000 usec Dec 15 02:32:16 centos5 ntpd[3134]: Listening on interface wildcard, 0.0.0.0#123 Disabled Dec 15 02:32:16 centos5 ntpd[3134]: Listening on interface wildcard, ::#123 Disabled Dec 15 02:32:16 centos5 ntpd[3134]: Listening on interface lo, ::1#123 Enabled Dec 15 02:32:16 centos5 ntpd[3134]: Listening on interface eth0, fe80::20c:29ff:fec5:2ecb#123 Enabled Dec 15 02:32:16 centos5 ntpd[3134]: Listening on interface lo, 127.0.0.1#123 Enabled Dec 15 02:32:16 centos5 ntpd[3134]: Listening on interface eth0, 192.168.127.1#123 Enabled Dec 15 02:32:16 centos5 ntpd[3134]: kernel time sync status 0040 Dec 15 02:32:16 centos5 ntpd[3134]: frequency initialized 0.000 PPM from /var/lib/ntp/drift
Производим ручную синхронизацию времени
# ntpdate -u europe.pool.ntp.org 15 Dec 10:02:55 ntpdate[3145]: adjust time server 79.142.192.130 offset -0.003043 sec
При этом в log-файле будут такие записи
Dec 15 10:02:00 centos5 ntpd[3134]: time reset +26790.585242 s Dec 15 10:02:00 centos5 ntpd[3134]: kernel time sync enabled 0001
После успешной синхронизации с внешними серверами данный сервер можно использовать в качестве локального, иначе при попытке синхронизации вы будете получать следующее сообщение об ошибке
# ntpdate -u 192.168.127.1 15 Dec 17:07:06 ntpdate[30987]: no server suitable for synchronization found