• »
  • »
  • »
  • Настройка часового пояса и синхронизация времени

Настройка часового пояса и синхронизация времени

В любом компьютере есть два времени: аппаратное и системное. Аппаратное - это время на часах материнской платы компьютера, а системное - это время в самой операционной системе. Достаточно часто при настройке компьютера с ОС 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)