Настройка времени и временной зоны (CentOS, RedHat, Fedora)

Для чего нужно настраивать часы в ОС

  • Во избежании вчерашних новостей и публикаций завтрашнего дня. Например часы вашего сервера идут по времени Екатеринбурга, а основные посетители из Европы (разница UTC+5). В таком случае вечерний посетитель увидит не верные даты на сайте. Потому что если в Европе вечер, то в Екатеринбурге утро следующего дня. 
  • Для корректного выполнения заданий Cron. 
  • Время создания файлов будет совпадать с фактическим и не будет вводить Вас в заблуждение.
Проверим, что показывают аппаратные часы, для чего будем использовать три варианта команды hwclock с ключами --localtime и --utc:
hwclock
Tue 14 Apr 2015 07:08:42 AM YEKT -0.753351 seconds
hwclock --localtime
Tue 14 Apr 2015 02:08:43 AM YEKT -0.411773 seconds
hwclock --utc
Tue 14 Apr 2015 07:08:45 AM YEKT -0.661398 seconds
Приведенный пример для случая когда аппаратные часы идут по UTC, а сервер настроен на часовой пояс Екатеринбурга. Особых пояснений требует команда hwclock с ключом --utc вывод времени производится с условием, что аппаратные часы настроены на счет времени в UTC системе. Показания должны совпадать с установленным временем в ОС. Команда hwclock с ключом --localtime наоборот показывает время аппаратных часов без привязок к временным зонам.

Установки времени для аппаратных часов
Синхронизация аппаратных часов с системным временем в ОС:
hwclock --systohc
Установка времени системных часов ОС на основании данных аппаратных часов (ЧРВ - часы реального времени):
hwclock --hctosys
Устанавливаем время аппаратных часов равное указанному (DD MM YY hh:mm:ss):
hwclock --set --date "01 Jan 2015 15:00"
Установленная временная зона для аппаратных часов хранится в файле /etc/sysconfig/clock. Для временной зоны Екатеринбурга в случае когда аппаратные часы идут по UTC он выглядит примерно так (строки UTC=true и ARC=false  могут отсутствовать):
mcedit /etc/sysconfig/clock
Содержимое файла /etc/sysconfig/clock

ZONE="Asia/Yekaterinburg"
UTC=true
ARC=false
В файле /etc/sysconfig/clock: 
  • ZONE - установленный часовой пояс;
  • UTC - аппаратные часы сервера ведут счет по универсальному времени UTC;
  • ARC равное false - используется нормальное временное значение UNIX.
Установка временной зоны (часового пояса)
Для изменения времени системных часов в ОС, если их показания не соответствуют необходимому региону, необходимо выполнить следующие команды:
Подстрахуемся и для начала, сделаем резервную копию существующего файла временной зоны (часового пояса).
mv /etc/localtime /etc/localtime.tmp
Создаем ссылку на необходимую временную зону, где Asia/Yekaterinburg временная зона. Полный список часовых поясов можно посмотреть в директории /usr/share/zoneinfo/.
ln -s /usr/share/zoneinfo/Asia/Yekaterinburg /etc/localtime
Установить значение времени можно вручную, а можно установить сервис автоматического обновления времени NTPD. Для ручной установки можно выполнить команду:
date 010115002015
В примере мы установили время: 1 января 2015 года 15:00

Дата: 14.04.2015 07:05:55
Автор: Пчелов Юрий