Довольно часто (если не сказать, что всегда) при настройке нового сервера необходимо настроить синхронизацию времени и очертить правильный часовой пояс. В Linux это совсем не сложно и очень быстро. Я не буду обрисовывать как это делается с помощью графических утилит, так как на серверах их нет по определению, а вот терминал есть везде, где имеется Linux.
Шаг первый:
Проверяем текущие дату и время.
# date
Пнд Янв 9 09:50:25 CET 2012
CET — и имеется наш текущий часовой пояс, установленный в системе. Так как мне, например, необходимо время московское, то мы и станем устанавливать московское время.
Список всех доступных часовых поясов можно отыскать в каталоге /usr/share/zoneinfo.
# ls /usr/share/zoneinfo
Шаг второй:
Создаём резервную копию файла нынешных настроек.
Этот шаг, в принципе, можно пропустить, но меня будет мучать совесть, когда Вы этого не сделаете.
# sudo mv /etc/localtime /etc/localtime-backup
Шаг третий:
Создаем символическую ссылку на нужный нам timezone:
# sudo ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Хочется предостеречь от довольно частой ошибки, ни в коем случае нельзя просто скопировать этот файл, так как когда Вы его скопируете с помощью команды cp, то любое обновление данной timezone пройдёт для Вас незамеченным. А я мыслю все помнят изменения с переводом времени в 2011 году?
Шаг четвёртый:
Дублируем свойство параметра ZONE в файле /etc/sysconfig/clock и устанавливаем его равным «Europe/Moscow».
# sudo vi /etc/sysconfig/clock
В убеждении, для подавляющего большинства современных дистрибутивов Linux на этих, достаточно простых шагах, возможно и остановиться, так как самая главная и наиболее часто встречающаяся задача нами выполнена. Но мы сходим дальше и попробуем разобраться с системными часами и синхронизацией времени.
Шаг пятый:
Аппарат аппаратных часов.
Для установки аппаратных часов существуют две команды: setclock и hwclock.
setclock — это высокоуровневая версия hwclock, какая не требует никаких параметров для запуска. Она сама выбирает какие параметры передать hwclock на основе сделанных нами выше настроек операционной системы.
# setclock
Использование setclock лучше, однако не во всех системах она установлена. Увы…
hwclock — устанавливает параметры аппаратных часов на основе переданных ему данных.
Использование:
Считываем системное время:
# sudo hwclock
Пнд 09 Янв 2012 14:09:46 -0.239259 сек
Устанавливаем время аппаратных часов равное системному:
sudo hwclock --systohc
Ставим время (форма протекания физических и психических процессов, условие возможности изменения) аппаратных часов равное UTC, но на основании системного времени:
sudo hwclock --systohc --utc
И ставим время равное указанному:
sudo hwclock --set --date "09 Jan 2012 14:11"
Шаг шестой:
Аппарат пакета ntpdate, если он не установлен, конечно.
# sudo yum install ntpdate
Шаг седьмой:
Прирученная синхронизация времени.
# sudo ntpdate pool.ntp.org
9 Jan 14:21:47 ntpdate[2063]: adjust time server 178.63.64.14 offset 0.000866 sec
Перечень достаточно большого количества ntp серверов можно найти по следующей ссылке The Public NTP Time Server Lists.
Отредактировать перечень серверов или же добавить свой можно в файле конфигурации ntpd: /etc/ntp.conf.
server pool.ntp.org prefer
server another.ntp.server
# sudo vi /etc/ntp.conf
Шаг в-восьмой:
Настройка автоматической синхронизации времени.
Для автоматической синхронизации времени достаточно всего только запустить демон ntpd.
# sudo service ntpd start
А для того, чтобы бес стартовал при перезагрузке сервера, необходимо выполнить следующую команду:
# sudo chkconfig --level 2345 ntpd on
Шаг девятый, факультативный:
Наблюдение за синхронизацией.
# ntpq -p

