Настройка часового пояса и синхронизация времени
В любом компьютере есть два времени: аппаратное и системное. Аппаратное - это время на часах материнской платы компьютера, а системное - это время в самой операционной системе. Достаточно часто при настройке компьютера с ОС Linux необходимо выставить правильный часовой пояс и настроить синхронизацию времени. В этой статье я расскажу об этом.
Командой date, можно проверить текущую дату и время.
# date Вт. окт. 28 20:42:21 MSK 2014
При необходимости можно установить значение времени вручную:
date MMDDhhmmYYYY
где MM – месяц, DD – день, hh – час, mm – минуты, YYYY - год.
Файлы описания зон хранятся в каталоге /usr/share/zoneinfo/.
# ls /usr/share/zoneinfo Africa Egypt Hongkong MST ROK America Eire HST MST7MDT Singapore Antarctica EST Iceland Navajo SystemV Arctic EST5EDT Indian NZ Turkey Asia Etc Iran NZ-CHAT UCT Atlantic Europe iso3166.tab Pacific Universal Australia Factory Israel Poland US Brazil GB Jamaica Portugal UTC Canada GB-Eire Japan posix WET CET GMT Kwajalein posixrules W-SU Chile GMT0 Libya PRC zone.tab CST6CDT GMT-0 localtime PST8PDT Zulu Cuba GMT+0 MET right EET Greenwich Mexico ROC
Для московское время нужен файл /usr/share/zoneinfo/Europe/Moscow
Для начала создадим резервную копию файла текущих настроек.
# mv /etc/localtime /etc/localtime.bak
За часовые пояса и правила перехода на летнее/зимнее время в linux отвечает пакет tzdata. Он периодически обновляется, чтобы отразить изменения, принимаемые в различных странах. Обновляем этот пакет.
# yum install tzdata
Дальше создаем символическую ссылку на файл настройки временной зоны (не копировать, т.к. обновление данной timezone пройдёт незамеченным), для установки московского часового пояса выбираем файл /usr/share/zoneinfo/Europe/Moscow:
# ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Дублируем значение параметра ZONE в файл:
Для Debian/Ubuntu/LinuxMint необходимо внести изменения в файл /etc/timezone:
Europe/MoscowДля Fedora/Centos/RHEL в файл /etc/sysconfig/clock:
ZONE="Europe/Moscow" UTC=true ARC=false
Синхронизируем аппаратное время с системным следующей командой:
# hwclock --systohc
После установки правильного часового пояса, необходимо настроить синхронизацию времени. Для этого используется программа ntp.
Установка пакета ntp, если он не установлен:
# yum install ntp
Если необходимо сразу скорректировать часы, выполните команду:
# ntpdate pool.ntp.org
Если выдаст примерно следующее "the NTP socket is in use, exiting" — значит ntpd запущен и его необходимо остановить и повторить синхронизацию, после, в случае необходимости, запустить обратно:
# service ntpd stop # ntpdate pool.ntp.org # service ntpd start
Добавляем ntpd в автозагрузку:
# chkconfig ntpd on
Наблюдение за синхронизацией можно выполнить командой:
# ntpq -p
Теперь системные и аппаратные часы будут автоматически синхронизироваться с серверами и показывать точное время.
Для изменения часового пояса в PHP, находим в файле (/etc/php.ini) строку date.timezone и добавляем свой часовой пояс, также необходимо расcкомментировать строку:
date.timezone = "Europe/Moscow";
Перезапустите веб-сервер:
# service httpd restart
Посмотреть в php текущую дату и время можно с помощью команды:
# php -r "echo date('Y-m-d, H:i:s');"
Комментарии (0)