Найти в Дзене
Игорь Сотников

Управление системным временем. (Часовые пояса, NTP)

Управление временем, в любой операционной системе, очень тесно связанно с понятием часовой зоны. В прошлой статье мы познакомились с утилитой настройки часовой зоны tzselect. В данной утилите с помощью мастера настраивали зону. Но, по сути, утилита нам выдала только переменную для настройки и описание, как настроить для постоянного использования. Можно пойти несколькими путями:

Первый путь:

1. TZ=’Europe/Moscow’ -задать переменную

2. export TZ – экспортировать данную переменную.

3. Для того, чтобы применились параметры перелогинится или перезагрузиться.

И после этого мы можем посмотреть текущую TZ в файле cat /etc/timezone

Вывод будет таким: Europe/Moscow

Второй путь:

Это использовать утилиту timedatectl:

1. timedatectl list-timezones -смотрим доступные временные зоны;

2. sudo timedatectl set-timezone Europe/Moscow

Значение времени в операционных системах определяется 4 частями:

1. 1.Значение времени

2. Стандарт времени или универсальное время.

3. Часовой пояс

4. Переход на летнее время.

Для любой операционной системы есть 2 вида часов – это системные время, которое работает в рамках операционной системы с кучей параметров и аппаратные часы, работа которых определяется схемой на материнской плате и поддерживаются эти часы в работе, благодаря батарейке на материнской плате. Аппаратные часы после включения сервера или компьютера передают свое значение времени операционной системе, а далее система уже сама работает с часами. Аппаратные часы по факту нужны только для старта операционной системы. В настоящее время этот момент стал не столь важным, т.к практически все сервера имеют доступ в интернет и могут со специальными сайтами синхронизировать время. В случае работы Операционной системы на виртуальной машине, время синхронизируется с материнской машиной.

Как мы в прошлой статье уже рассматривали есть утилита для управления и изменения системного времени date, а есть утилита hwclock для того, чтобы посмотреть аппаратное время. Для работы данной утилиты необходимы права суперпользователя.

sudo hwclock

-2

Вот такой вывод получается, у меня виртуализация на ESXI vmware и виртуализация позволяет синхронизировать часы дочерней операционной системы с аппаратными часами материнского сервера. В вашем же случае, если операционная система будет развернута на Virtualbox, то синхронизации этой происходить не будет (только при старте виртуальной машины) и будет отображаться разница во времени в результате вывода команды. Далее Операционная система виртуальной машины и материнского хоста идут независимо друг от друга.

Хотелось бы отметить, что время важно не только для самой операционной системы, но и так же для взаимодействия с другими серверами, например при использовании авторизации с помощь протокола Kerberos, в котором сервис генерирует токены опираясь на метку времени в операционной системе и если будет слишком большое расхождение между серверами, токен не будет принят. Исходя из этого команду hwclock можно использовать и для установки времени.

sudo hwclock --set --date=[”нужное_время”] – нужное время задаем в виде dd/mm/yyyy hh:mm

т.е мы можем задать аппаратное время любое. Синхронизация пройдет только при старте операционной системы в нашем случае. Для синхронизации времени одних, часов с другими необходимо выполнить команду: sudo hwclock -w.

Но в таком формате синхронизировать время не удобно, в настоящее время практически на всех серверах используется автоматическая синхронизация времени по протоколу ntp.

Данный протокол, обеспечивает синхронизацию системного времени с удаленным сервером в интернете. NTP протокол на транспортном уровне работает, через UDP на 123 порту. В интернете есть такой проект, как ntp pool project у которого есть сервера точного времени. Страничка его https://www.ntppool.org/ru/ по данной страничке можно подобрать ближайший к вам сервер точного времени и сделать настройку на него своего сервера или группы серверов.

server 0.ru.pool.ntp.org

server 1.ru.pool.ntp.org

server 2.ru.pool.ntp.org

server 3.ru.pool.ntp.org

Вот сервера, актуальные для России.

Для разовой синхронизации можно использовать следующую утилиту, предварительно установив ее:

sudo ntpdate [адрес_сервера]

В нашем случае получится следующее:

sudo ntpdate 0.ru.pool.ntp.org

-3

В результате время синхронизировалось, и утилита показала расхождение, которое было.

Теперь настроим автоматическую синхронизацию времени для этого необходимо установить ntpd демон. Делается это стандартным способом.

sudo apt-get install ntp -y

И отредактировать файл /etc/ntp.conf . Данный демон умеет и сам раздавать время в сети, мы можем настроить другие сервера на синхронизацию с ним, но сейчас необходимо просто настроить синхронизацию текущего сервера с временем сервера в интернете.

sudo nano /etc/ntp.conf

Добавляем сервера в файл, сохраняем и перезапускаем демона.

sudo service ntp restart

И мы можем посмотреть с какими серверами теперь наш сервер может синхронизироваться.

ntpdq -pn

-4

Получим вот такой вывод сервером с которыми у нас будет происходить синхронизация.

Если у кого есть желание сказать спасибо за канал или статьи :

QIWI: KNEYE561

Юmoney ( ЯД ) 41001606289345

#ubuntu #open source #centos #системное администрирование