MyTetra Share
Делитесь знаниями!
Изменение timezone (часового пояса) в Linux и настройка синхронизации времени (ntpdate)
07.06.2018
12:58
Раздел: Компьютер - Linux - Bash - Команды и скрипты

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

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования