Прежде всего необходимо установить часовой пояс. Делается это через символическую ссылку. Файл /etc/localtime должен указывать на файл настройки временной зоны в каталоге /usr/share/zoneinfo/. Например, для Москвы это файл /usr/share/zoneinfo/Europe/Moscow.
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Для просмотра системного времени в Linux используется команда date, а для просмотра аппаратного времени (времени в BIOS) - hwclock. Результат их выполнения без параметров будет таким:
Tue Apr 30 16:18:29 MSK 2013
Tue Apr 30 16:18:29 2013 -0.017060 seconds
Установить дату и время можно с помощью этой же команды с параметрами: date MMDDhhmm[[CC]YY][.ss]], где MM - месяц, DD - день, hh - час, mm - минуты, CCYY - четыре цифры года, ss - секунды. Например, для установки времени 16 часов 34 минуты 30 апреля 2013 года необходимо ввести:
date 043016342013
Если часы спешат или отстают, лучше использовать NTP сервер для синхронизации. Установить его можно с помощью команды:
yum install ntp
После этого можно синхронизировать время с серверами времени в Интернете:
ntpdate pool.ntp.org
Таким образом мы установили системное время. Теперь необходимо выставить аппартные часы BIOS, равными времени по Гринвичу (UTC):
hwclock --systohc --utc
Для того, чтобы система не показывала время из BIOS, необходимо внести изменения в файл /etc/sysconfig/clock:
ZONE = "Europe/Moscow"
UTC = true
ARC = false
ZONE - Ваш текущий часовой пояс. Для того, чтобы системное время при перезагрузке записывалось в BIOS, можно добавить параметр HWCLOCK_SET_AT_HALT = true.
Для работы NTP сервера после перезагрузки системы нужно ввести:
chkconfig --level 2345 ntpd on
После этого запускаем NTP и проверяем работу:
service ntpd start
ntpq -p
В появившейся таблице показаны сервера, с которыми синхронизирован NTP:
remote refid st t when poll reach delay offset jitter
==============================================================================
+tux.brhelwig.co 127.67.113.92 2 u 142 1024 377 41.434 6.096 0.016
*tock.usshc.com .GPS. 1 u 170 1024 377 32.655 0.208 0.429
+199.167.29.243 216.45.57.38 3 u 153 1024 377 37.768 1.029 0.327
LOCAL(0) .LOCL. 10 l 64 64 377 0.000 0.000 0.001
Не изменяется дата и время
При работе CentOS как виртуальной системы под управлением Xen операционная система не дает изменить время и дату. При этом команды установки времени и даты срабатывают, но проверка показывает время без внесенных изменений.
Для решения этой проблемы необходимо в ядре ОС изменить параметр xen.independent_wallclock на "1". По умолчанию он установлен в "0", то есть часы синхронизируются с родительским сервером при старте системы и не разрешают их менять.
sudo sysctl xen.independent_wallclock=1
или
echo 1 > /proc/sys/xen/independent_wallclock
Теперь date, ntpd и ntpdate смогут менять дату и время. Для срабатывания параметра после перезагрузки системы необходимо добавить в файл /etc/sysctl.conf строку:
xen.independent_wallclock = 1 |