В статье мы разберёмся с тем, как настроить время в Linux. Посмотрим текущее время, укажем часовой пояс и настроим синхронизацию времени.
Чтобы посмотреть текущее время на вашем сервере linux воспользуйтесь командой date:
alex@ubu:~$ date Ср 13 июл 2022 13:40:27 UTC
В выводе мы видим не только дату и время, но также и часовой пояс. Сейчас вместо часового пояса используется UTC.
Также можно использовать другую команду – timedatectl:
alex@s-ubu:~$ timedatectl Local time: Ср 2022-07-20 07:56:41 UTC Universal time: Ср 2022-07-20 07:56:41 UTC RTC time: Ср 2022-07-20 07:56:41 Time zone: UTC (UTC, +0000) System clock synchronized: yes NTP service: active RTC in local TZ: no
Без опций она покажет текущее время, часовой пояс, а также другую информацию связанную с синхронизацией времени. Например в примере выше видно что время успешно синхронизуется (System clock synchronized: yes) и синхронизация настроена (NTP service: active).
С помощью этой же утилиты (timedatectl) мы будем настраивать часовой пояс и следить за синхронизацией времени, об этом чуть ниже.
Настройка часового пояса
Вообще часовой пояс в системе определяется файлом /etc/localtime, который является символьной ссылкой (про ссылки я уже писал):
alex@ubu:~$ ls -l /etc/localtime lrwxrwxrwx 1 root root 27 апр 21 01:01 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
Можно вручную отредактировать эту ссылку и указать нужный часовой пояс:
alex@ubu:~$ sudo ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Или воспользоваться утилитой timedatectl:
alex@ubu:~$ sudo timedatectl set-timezone Europe/Moscow
Если вас не устраивает выбранный мною часовой пояс, то можете посмотреть список поддерживаемых часовых поясов так:
alex@ubu:~$ timedatectl list-timezones
Проверим время и часовой пояс:
alex@ubu:~$ timedatectl Local time: Ср 2022-07-13 16:50:39 MSK Universal time: Ср 2022-07-13 13:50:39 UTC RTC time: Ср 2022-07-13 13:50:39 Time zone: Europe/Moscow (MSK, +0300) System clock synchronized: yes NTP service: active RTC in local TZ: no
Как видим, часовой пояс уже изменился на Europe/Moscow (MSK, +0300).
Синхронизация времени
В настоящее время очень важно чтобы часы на ваших серверах были синхронизированы. Очень много систем полагаются на время, например:
- если часы на сервере kerberos и клиенте расходятся более чем на 5 минут, то клиенты не смогут пройти проверку подлинности на сервере;
- в различных финансовых системах транзакции должны выполняться в надлежащем порядке, поэтому серверы выполняющую эту работу должны быть строго синхронизированы по времени;
- правильное время также нужно для выполнения автоматизированный задач;
- системные журналы также полагаются на время.
Получение списка NTP серверов по DHCP
Если ваш сервер получает сетевые настройки по dhcp, то он может получить список NTP серверов (серверов времени для синхронизации). Это настраивается в файле /etc/dhcp/dhclient.conf. В строке request мы определяем что хотим получать от сервера dhcp. И здесь может быть указан параметр ntp-servers:
alex@ubu:~$ cat /etc/dhcp/dhclient.conf # часть текста пропустил request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers; # часть текста пропустил
Само собой, вы получите список ntp-серверов, только в том случае если ваш dhcp сервер их распространяет.
Служба синхронизации времени
В системах работающих на systemd работает специальная служба синхронизации времени systemd-timesyncd.service. Можем посмотреть её статус:
alex@ubu:~$ systemctl status systemd-timesyncd.service ● systemd-timesyncd.service - Network Time Synchronization Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-07-13 17:08:06 MSK; 23s ago Docs: man:systemd-timesyncd.service(8) Main PID: 399 (systemd-timesyn) Status: "Initial synchronization to time server 192.168.0.16:123 (192.168.0.16)." Tasks: 2 (limit: 2241) Memory: 1.3M CPU: 63ms CGroup: /system.slice/systemd-timesyncd.service └─399 /lib/systemd/systemd-timesyncd
Видим что синхронизация идет с сервером по адресу 192.168.0.16. У меня этот адрес прилетел по dhcp.
Обратите внимание, что служба эта стартует по запросу и останавливается после синхронизации времени!
Давайте выключим получение ntp серверов по dhcp:
alex@ubu:~$ sudo nano /etc/dhcp/dhclient.conf # в этой строке удалите опцию ntp-servers request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes;
Вы можете использовать следующий пул серверов времени для синхронизации – https://www.pool.ntp.org/zone/ru. Укажем первый сервер из этого пула в конфиге /etc/systemd/timesyncd.conf:
alex@ubu:~$ sudo nano /etc/systemd/timesyncd.conf [Time] NTP=0.ru.pool.ntp.org FallbackNTP=ntp.ubuntu.com RootDistanceMaxSec=5 PollIntervalMinSec=32 PollIntervalMaxSec=2048
В конфиге используются следующие опции:
- NTP – укажите 1 или несколько ntp серверов. Если хотите указать несколько серверов, разделяйте их пробелами;
- FallbackNTP – укажите 1 или несколько резервных ntp серверов;
- RootDistanceMaxSec – максимальное время в секундах, за которое пакет от сервера эталонного времени должен доходить до сервера к которому мы подлкючены;
- PollIntervalMinSec и PollIntervalMaxSec – минимальный и максимальный интервалы синхронизаций времени. Вначале используется минимальный интервал, а затем он увеличивается если система видит что локальное время со временем ntp-сервера не расходится.
После правки перезапустите службу синхронизаций времени:
alex@ubu:~$ sudo systemctl restart systemd-timesyncd.service
Дополнительно можно посмотреть информацию по синхронизации времени с помощью следующей команды:
alex@ubu:~$ timedatectl timesync-status Server: 91.209.94.10 (0.ru.pool.ntp.org) Poll interval: 34min 8s (min: 32s; max 34min 8s) Leap: normal Version: 4 Stratum: 2 Reference: 3EE70662 Precision: 1us (-25) Root distance: 4.012ms (max: 5s) Offset: -5.502ms Delay: 11.084ms Jitter: 2.886ms Packet count: 7 Frequency: +15,118ppm
Здесь мы видим адрес ntp-сервера, а также какой интервал синхронизации (34min 8s) использовался последний раз.
То-есть служба синхронизации времени systemd-timesyncd.service будет запускаться и останавливаться сейчас примерно раз в 34 минуты. Поэтому если увидите, что служба в состоянии loaded и inactive, не пугайтесь. По логам видно что она периодически запускается:
alex@ubu:~$ systemctl status systemd-timedated ○ systemd-timedated.service - Time & Date Service Loaded: loaded (/lib/systemd/system/systemd-timedated.service; static) Active: inactive (dead) Docs: man:systemd-timedated.service(8) man:localtime(5) man:org.freedesktop.timedate1(5) июл 19 15:54:24 s-ubu systemd[1]: systemd-timedated.service: Deactivated successfully. июл 19 15:55:41 s-ubu systemd[1]: Starting Time & Date Service... июл 19 15:55:41 s-ubu systemd[1]: Started Time & Date Service. июл 19 15:56:35 s-ubu systemd[1]: systemd-timedated.service: Deactivated successfully. июл 19 16:05:45 s-ubu systemd[1]: Starting Time & Date Service... июл 19 16:05:45 s-ubu systemd[1]: Started Time & Date Service. июл 19 16:06:15 s-ubu systemd[1]: systemd-timedated.service: Deactivated successfully. июл 19 16:28:42 s-ubu systemd[1]: Starting Time & Date Service... июл 19 16:28:42 s-ubu systemd[1]: Started Time & Date Service. июл 19 16:30:17 s-ubu systemd[1]: systemd-timedated.service: Deactivated successfully.
Из вывода:
- Deactivated successfully – служба останавливается;
- Starting Time & Date Service… – служба стартует;
- Started Time & Date Service – служба стартовала;
- и так по кругу.
Ещё один способ задать часовой пояс
С помощью команды dpkg-reconfigure tzdata также можно задать часовой пояс:
alex@ubu:~$ sudo dpkg-reconfigure tzdata
После выполнения вы можете использовать псевдографический интерфейс для настройки часового пояса. Вначале выберите географический район:
Затем город:
Итог
Теперь вы знаете как настроить время на сервере Debian или Ubuntu. Мы научились устанавливать часовой пояс и настраивать синхронизации времени с ntp серверами.
Узнали про следующие команды:
- date – покажет текущую дату, время и часовой пояс;
- timedatectl – покажет тоже самое что и date + синхронизуется ли время;
- timedatectl list-timezones – покажет список поддерживаемых часовых поясов;
- timedatectl set-timezone Europe/Moscow – установить часовой пояс Europe/Moscow;
- timedatectl timesync-status – покажет с какими ntp-серверами синхронизуется время и как часто;
- dpkg-reconfigure tzdata – установить часовой пояс.
Познакомились с файлами:
- /etc/localtime – является символической ссылкой и содержит информацию о текущем часовом поясе;
- /etc/dhcp/dhclient.conf – настройки dhcp-клиента, который умеет запрашивать ntp-сервера для синхронизации времени;
- /etc/systemd/timesyncd.conf – настройки службы синхронизации времени.
Узнали про службу синхронизации времени:
- systemd-timedated.service – стартует по запросу, а после синхронизации времени отключается до следующей синхронизации.
Сводка
Имя статьи
Дата, время и часовой пояс в Linux
Описание
В статье мы разберёмся с тем, как настроить время в Linux. Посмотрим текущее время, укажем часовой пояс и настроим синхронизацию времени
Часовой пояс в Linux обычно настраивается во время установки системы. Иногда пользователю может потребоваться его изменить. Способ изменения часового пояса (его еще называют временной зоной) может зависеть от конкретного дистрибутива. Рассмотрим некоторые из способов изменения часового пояса.
Оглавление
- Посмотреть текущий часовой пояс
- Команда date
- Команда timedatectl
- ls -lh /etc/localtime
- Получить список доступных часовых поясов
- Утилита tzselect
- Утилита timedatectl
- Изменить часовой пояс
- Изменяем часовой пояс утилитой timedatectl
- Изменяем часовой пояс настройкой /etc/localtime
- Изменить часовой пояс только для одной программы или текущей сессии
- Изменить часовой пояс через графические утилиты
- Заключение
Посмотреть текущий часовой пояс
Посмотреть текущий часовой пояс можно разными способами.
Команда date
Команда date выводит текущую дату, время и часовой пояс:
$ date
Вт мар 12 19:01:33 MSK 2019
В выводе команды мы можем видеть, что текущая временная зона соответствует Москве — MSK.
Команда timedatectl
Утилита timedatectl применяется для настройки и получения информации о текущем системном времени. Она доступна в системах, использующих systemd.
Если выполнить команду timedatectl без параметров, то будет выведена информация о системных часах, а также часовой пояс (в поле Time zone).
$ timedatectl
Local time: Вт 2019-03-12 20:18:08 MSK
Universal time: Вт 2019-03-12 17:18:08 UTC
RTC time: Вт 2019-03-12 17:18:09
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
ls -lh /etc/localtime
Файл /etc/localtime это символическая ссылка, которая указывает на текущий часовой пояс, используемый в системе.
Для просмотра можно воспользоваться командной:
$ ls -lh /etc/localtime
lrwxrwxrwx 1 root root 35 мар 12 20:09 /etc/localtime -> ../usr/share/zoneinfo/Europe/Moscow
Получить список доступных часовых поясов
Утилита tzselect
Перед тем, как устанавливать часовой пояс, нужно понять, какое значение можно установить. Для этого можно воспользоваться утилитой tzselect.
После запуска утилита tzselect отображает список географических областей. Вы должны ввести номер области и нажать Enter. Затем появится список стран. Аналогично, нужно ввести номер страны. Появится список городов. Вводим номер города. В результате вы сможете увидеть название вашей временной зоны.
tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
1) Africa
2) Americas
3) Antarctica
4) Asia
5) Atlantic Ocean
6) Australia
7) Europe
8) Indian Ocean
9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the time zone using the Posix TZ format.
#? 7
Утилита timedatectl
Утилита timedatectl поддерживает опцию list-timezones. Выполнив следующую команду можно просмотреть список всех доступных временных зон:
timedatectl list-timezones
Можно воспользоваться grep и ограничить область поиска. Например, выведем список временных зон только для Европы:
timedatectl list-timezones | grep Europe | less
Изменить часовой пояс
Изменяем часовой пояс утилитой timedatectl
Напомним, что утилита timedatectl доступна только для систем, использующих systemd. Если у вас нет утилиты timedatectl, то используйте способ описанный в следующем параграфе.
Для установки часового пояса с помощью утилиты timedatectl нужно выполнить команду:
timedatectl set-timezone Europe/Moscow
Во время ввода часового пояса можно нажимать дважды клавишу Tab, чтобы получить список часовых поясов.
Изменяем часовой пояс настройкой /etc/localtime
Данный способ наиболее универсальный и работает в большинстве дистрибутивов Linux.
Необходимо создать символическую ссылку /etc/localtime, чтобы она указывала на файл нужной временной зоны. Файлы временных зон хранятся в каталоге /usr/share/zoneinfo/. Каждая зона имеет путь /usr/share/zoneinfo/Название/Зоны. Например, для Москвы это /usr/share/zoneinfo/Europe/Moscow.
Итак создадим ссылку на нужный файл временной зоны:
sudo unlink /etc/localtime
sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Чтобы проверить, что временная зона установлена верно, можно выполнить команду date:
date
Изменить часовой пояс только для одной программы или текущей сессии
Чтобы установить часовой пояс для отдельной программы можно задать его через переменную окружения TZ:
TZ=America/Chicago программа
Например:
$ TZ=America/Chicago date
Чтобы установить часовой пояс только для текущей сессии в терминале, используется команда:
export TZ=America/Denver
Изменить часовой пояс через графические утилиты
Выше мы описали способ изменения часового пояса, используя средства и утилиты командной строки. В большинстве дистрибутивах обычно есть графическая программа настройки, через которую можно с легкостью изменить часовой пояс.
Если вы работаете в Gnome, откройте Параметры системы.
Перейдите на вкладку Сведения о системе, далее вкладка Дата и время (в зависимости от версии Gnome названия пунктов могут немного отличаться). Нажмите на надпись Часовой пояс.
Откроется карта с возможностью интерактивного выбора часового пояса. Выберите мышкой нужный регион на карте.
Заключение
Мы рассмотрели как изменить часовой пояс в Linux, как определить текущий часовой пояс и просмотреть список доступных временных зон. Большинству пользователей подойдет способ с использованием графической программы для изменения Параметров системы.
Важным параметром в эксплуатации любого сервера является корректно настроенное время и его своевременная синхронизация. Как выполнить смену часового пояса в ubuntu в случае его изменения или неверного указания во время установки – одна из тем этой статьи. Также я расскажу про установку и использование программ для синхронизации времени и настройку службы точного времени ntp.
Время и дата в Ubuntu Server
Как я уже сказал во введении, следить за системным временем в ubuntu server нужно в обязательном порядке, как и в любом другом сервере. Начальные настройки вы делаете еще во время установки системы. Далее вам может понадобиться либо изменение часового пояса, либо более точная настройка и синхронизация часов.
Кстати, если вам интересно узнать, почему я лично использую именно ubuntu server, а не какой-то другой linux дистрибутив, то читайте мой обзор и сравнение ubuntu с другими системами.
Особенно актуальной тема системного времени становится, когда вы арендуете сервера где-то в другой стране с отличным от вашего часового пояса. По умолчанию, у хостера скорее всего будет установлен его часовой пояс. Иногда я забываю это проверить и замечаю только тогда, когда возникают какие-то проблемы. А вот список проблем, которые могут теоретически возникнуть, если на сервере будет неправильное время:
- При просмотре логов или разборе инцидентов придется сначала переводить время в свой часовой пояс или формат, чтобы адекватно разобраться в ситуации.
- Если у вас настроена какая-то интеграция с доменной структурой Windows, расхождение по времени может приводить к проблемам.
- При использовании cron и автоматических заданий для выполнения, неправильное время на сервере может удивить вас тем, что ваши задачи будут выполнены не тогда, когда вы этого ожидаете.
- Если на сервере работает web сайт или почтовый сервис, время публикации постов или отправления писем будет неправильным, что создаст неудобство пользователям.
Это список, что первым делом приходит на ум. Думаю, его можно сильно расширить, если потратить чуть больше времени. Но не вижу в этом смысла. Думаю, и так понятно, что часы на сервере должны всегда показывать точное время в нужном вам часовом поясе. Этим мы и займемся далее.
Утилита date
Посмотреть время в командной строке Ubuntu можно с помощью команды date.
date
В данном случае вы видите следующую информацию:
Fri | День недели, пятница |
26 | Число месяца |
Mar | Месяц, март |
2021 | Год |
02:01:59 | Время в формате час:минута:секунда |
PM | Время суток в 12-ти часовом формате, PM — после полудня |
UTC | Часовой пояс |
Для того, чтобы посмотреть время в 24-х часовом формате в консоли ubuntu, можно использовать дополнительный ключ к команде, добавив туда еще и саму дату:
date +"%H:%M %d/%m/%Y" 14:09 26/03/2021
Таким образом, с помощью параметров форматирования, вы можете выбирать любой формат времени для отображения. Традиционно, командная строка linux позволяет очень гибко выполнять различные действия с помощью своих утилит. Например, вы можете посмотреть не только время и дату, но и вывести в консоль номер дня недели, добавив дополнительный ключ %j:
date +"%H:%M %d/%m/%Y %j" 14:13 26/03/2021 085
Узнать время сервера в unix формате можно вот так:
date '+%s' 1616768183
Если у вас часовой пояс отличный от UTC, а вы хотите увидеть время именно в этом часовой поясе, то воспользуйтесь следующим ключом команды:
date --utc
Очень удобно использовать утилиту date с различными параметрами в скриптах, чтобы получать время в удобном для вас формате. Например, когда вы используете время в названиях файлов бэкапов при их создании. Вот несколько примеров наиболее часто используемых форматов отображения даты и времени:
date +%Y-%m-%d 2021-03-26 date +%H:%M:%S 14:36:35 date +%Y-%m-%d_%H:%M:%S 2021-03-26_14:36:42
Утилита timedatectl
В составе systemd есть своя утилита для просмотра и настройки времени через консоль — timedatectl. Далее пример с ее участием для просмотра системного времени сервера ubuntu.
timedatectl
Local time | Локальное время данного сервера |
Universal time | Время в часовом поясе UTC |
RTC time | Время на аппаратных часах |
Time zone | Ваш часовой пояс |
С просмотром в консоли текущего времени сервера разобрались, переходим к его настройке.
Ручная настройка времени в ubuntu обычно не представляет какой-то особой сложности, если понимаешь, как это сделать. Для того, чтобы самостоятельно установить время через консоль, необходимо запустить date через sudo со следующими параметрами:
sudo date 03261721 [sudo] password for user: Fri 26 Mar 2021 05:21:00 PM UTC
В данном случае при обновлении времени мы подразумевали:
- 03 — месяц март;
- 26 — текущее число дня месяца;
- 17 — часы;
- 21 — минуты;
То есть базовый формат утилиты date следующий — MMDDhhmm.
В моих примерах время отображается в 12-ти часовом формате на английском языке. Для того, чтобы перевести его в 24-х часовой формат, нужно изменить в locale параметр LC_TIME. Именно там стоит привязка к формату. Например, в локали en_US по умолчанию используется 12-ти часовой формат, а в ru_RU или en_GB 24-х часовой.
Для того, чтобы дата в консоли отображалась на русском языке, а время в 24-х часовом формате, достаточно сформировать locale ru_RU и изменить только формат времени, оставив все остальное на английском языке.
sudo locale-gen ru_RU.UTF-8 sudo update-locale LANG=en_US.UTF-8 LC_TIME="ru_RU.UTF-8"
После этого необходимо завершить сеанс пользователя и залогиниться снова, чтобы изменение формата вступило в силу.
Еще один способ установки даты и времени с помощью timedatectl:
sudo timedatectl set-time "2021-03-26 18:09:30"
При этом вы можете получить ошибку: Failed to set time: Automatic time synchronization is enabled. Утилита timedatectl более умная, нежели date. Она проверяет, не настроена ли у вас автоматическая синхронизация времени. И если настроена, то вручную не дает его изменить. В целом, это правильный подход, хотя и может создавать неудобства. В этом случае вам надо отключить синхронизацию и только потом установить время руками. Эту тему мы будем рассматривать ниже отдельно.
Установка и настройка часового пояса в Ubuntu
Непосредственно со временем разобрались, рассмотрим теперь настройку временной зоны. Как посмотреть установленный часовой пояс, мы уже разобрались выше. Теперь разберем, как его изменить или просто задать, если ранее этого не сделали и у вас по умолчанию стоит UTC.
Установить часовой пояс можно с помощью утилит — tzselect и timedatectl. С их же помощью можно перед этим посмотреть список доступных зон. Например, так:
timedatectl list-timezones
Вы увидите длинный список временных зон, состоящий из 348 строк. Его можно будет скролить, либо сразу ограничить вывод нужным вам диапазоном.
timedatectl list-timezones | grep Europe
После того, как выбрали зону, изменяем текущий часовой пояс.
sudo timedatectl set-timezone Europe/Moscow
или с помощью tzselect:
tzselect
Мы выполнили изменение часового пояса в ubuntu как минимум двумя разными способами. Не забудьте после этого на всякий случай проверить установленную timezone. Расскажу про еще один способ, как это можно сделать в консоли. После настройки тайм зоны, на нее создается символьная ссылка от файла /etc/localtime в директорию /usr/share/zoneinfo.
ls -la /etc/localtime lrwxrwxrwx 1 root root 35 мар 26 18:19 /etc/localtime -> ../usr/share/zoneinfo/Europe/Moscow
Меняя эту ссылку, можно так же изменять часовой пояс.
Синхронизация времени с помощью ntpdate, timedatectl
После того, как вы настроили правильную дату и нужный часовой пояс, стоит поработать над тем, чтобы часы всегда показывали точное значение минут и часов. Для этого надо настроить синхронизацию времени. Тут традиционно для linux есть несколько способов и вариантов настройки.
Первый и самый простой способ синхронизации времени в ubuntu — воспользоваться известной утилитой ntpdate.
sudo apt install ntpdate
В качестве параметра ntpdate принимает адрес сервера точного времени, с которого будет произведена синхронизация локальных часов. Я предлагаю воспользоваться популярным пулом серверов точного времени — pool.ntp.org.
sudo ntpdate pool.ntp.org
Пул автоматически выбрал сервер точного времени, с которым мы синхронизировали свои часы. Один из способов автоматизации этого процесса является запуск ntpdate через cron. Но это не очень удобное решение, так как есть более эффективные способы. Например, с помощью локальной службы ntp или chrony, а так же компонента systemd — timesyncd.
После установки системы вам стоит проверить, а не запущена ли у вас уже синхронизация времени с помощью timesyncd. Проверяем:
timedatectl timesync-status
Так и есть. В большинстве современных дистрибутивов, где установлена systemd, уже запущена timesyncd. Параметры этой службы находятся в конфигурационном файле /etc/systemd/timesyncd.conf, где можно посмотреть, какой сервер используется для синхронизации времени и в случае необходимости, заменить. В Ubuntu это ntp.ubuntu.com. Большого смысла менять его на другой сервер нет. Если только вы не хотите синхронизировать время с какого-то своего локального сервера. Как это сделать, я расскажу отдельно ниже.
Клиент ntp
Если вас по какой-то причине не устраивает служба timesyncd, можете ее отключить.
sudo systemctl stop systemd-timesyncd sudo systemctl disable systemd-timesyncd
А в место нее установить, к примеру, ntp, работающую в режиме клиента.
sudo apt install ntp
Поясню немного, зачем это может понадобиться. Если вам необходимо только синхронизировать время, то утилиты timesyncd вполне хватает для этой простой задачи. Но иногда вам нужен более широкий функционал. Например, вы хотите настроить в своей локальной сети свой собственный сервер времени, чтобы остальные компьютеры сверяли свои часы с ним. В этом случае вам нужна будет служба ntp. А раз вы ее и так поставите, то зачем вам дублирование функционала? В этом случае имеет смысл отключить timesyncd и оставить только ntp. Она умеет работать и в качестве сервера времени, и в качестве клиента синхронизации.
Итак, установили ntp. Для того, чтобы синхронизировать время, достаточно ее просто запустить:
sudo systemctl enable --now ntp
Проверяем статус синхронизации:
sudo systemctl status ntp
Видим пул серверов времени, с которыми наш ubuntu server будет синхронизировать свои часы. Настройки службы находятся в конфигурационном файле /etc/ntp.conf. Посмотреть информацию о работе ntp можно с помощью утилиты ntpq:
ntpq -p
Далее рассмотрим вариант, когда вам нужен свой сервер времени в локальной сети. Для этого донастроим установленную службу ntp.
Настройка ntp сервера
Сервер времени в своей работе использует отдельный протокол NTP (Network Time Protocol). Ему нужен для работы UDP Port 123. Так что прежде чем дальше настраивать ntp, откройте этот порт на фаерволе или отключите его. Настройка firewall выходит за рамки данной статьи, так как в его качестве может использоваться разный софт. Если у вас управление фаерволом настроено через ufw, то достаточно такой команды:
sudo ufw allow ntp
Далее открываем конфиг /etc/ntp.conf и приводим его к примерно следующему виду:
driftfile /var/lib/ntp/ntp.drift restrict -4 default kod notrap nomodify nopeer noquery limited restrict 127.0.0.1 restrict 10.20.1.0 mask 255.255.255.0 nomodify notrap pool 0.ubuntu.pool.ntp.org iburst pool 1.ubuntu.pool.ntp.org iburst pool 2.ubuntu.pool.ntp.org iburst pool 3.ubuntu.pool.ntp.org iburst logfile /var/log/ntp.log
Это минимально необходимое содержимое, чтобы запустить свой собственный сервер времени на базе ntp в локальной сети 10.20.1.0/24. Если вам не нужен протокол ipv6, то можете его отключить. Для этого в файл /etc/default/ntp добавляем параметр:
NTPD_OPTS='-4 -g'
И перезапускаем службу ntp. Проверяем, как она работает.
sudo ss -tulnp | grep ntp
Служба времени слушает все сетевые интерфейсы. Теперь с любого клиента в локальной сети можно выполнить с помощью ntpdate синхронизацию времени с нашим Ubuntu Server. Проверьте это самостоятельно. Ранее я уже показывал, как это сделать.
Ошибки синхронизации времени
TIME_ERROR: 0x2041: Clock Unsynchronized
Иногда в логе /var/log/ntp.log или системном логе /var/log/syslog вы можете наблюдать ошибку — kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized. На нее можно не обращать внимание, так как реально это не ошибка, а информационное сообщение. Нам просто сообщают о том, что в момент страта службы ntp, ядро linux еще не синхронизировало время.
the NTP socket is in use, exiting
Если при запуске синхронизации времени с помощью ntpdate вы видите ошибку — the NTP socket is in use, exiting, то это значит, что у вас уже запущена служба ntp. Для того, чтобы не было конфликтов при изменении времени, должно работать что-то одно, либо ntpdate, либо ntp, но не оба одновременно. Чтобы эта ошибка исчезла, достаточно просто остановить ntp и запустить ntpdate еще раз.
no server suitable for synchronization found
Еще одна популярная ошибка, которая может возникнуть при запуске ntpdate. Она означает, что не получается по какой-то причине установить соединение с сервером времени. В общем случае это означает, что есть какие-то сетевые проблемы, но не обязательно. Вы можете попробовать запустить ntpdate c ключом -u. Он означает, что будет использован локальный не 123-й порт udp, как обычно, а другой из непривилегированного диапазона. Иногда это помогает, так как многие провайдеры из-за известной уязвимости протокола ntp блокируют исходящий 123 порт.
ntpdate -u pool.ntp.org
Служба ntp не запускается после загрузки сервера
Если ntp не стартует после загрузки сервера, то связано это может быть в первую очередь с тем, что не отключена служба timesyncd. Отключите ее и проверьте еще раз:
sudo timedatectl set-ntp no
Ubuntu меняет время и часовой пояс в bios
Убунта имеет дурную привычку при синхронизации времени устанавливать в bios часовой пояс UTC. В общем случае это не доставляет проблем, но если у вас установлена параллельно еще какая-то система на компьютере, то это может создавать проблемы. Чтобы Ubuntu не трогала часы в bios, необходимо выполнить следующую команду:
sudo timedatectl set-local-rtc 1
Время загрузки системы
Немного затрону еще одну тему, которая не связана напрямую с часами на сервере, но тем не менее имеет отношение ко времени. Эта информация наиболее актуальна как раз в этой статье.
Как узнать точное время включения компьютера с Ubuntu?
Команда uptime может показать не только время, в течении которого работает сервер, но и точное время запуска системы:
uptime
uptime -s
Эту же информацию можно получить с помощью утилиты who:
who -b system boot 2021-03-26 17:01
Время последнего выключения Ubuntu
Если вы хотите узнать не только время включения сервера, но и время последних выключений или время последней перезагрузки, то воспользуйтесь утилитой last:
last -x reboot
Она показывает, когда последние несколько раз компьютер выключался или перезагружался.
Заключение
Подвожу кратко итог сегодняшней статьи на тему настройки времени на сервере с ubuntu. Я рассмотрел все основные моменты, связанные с часами, часовыми поясами, а так же их синхронизацией. Если я забыл что-то важное, ошибся или у вас есть дополнения, без которых эта статья не видится вам полноценной и законченной, делитесь ими в комментариях. За это вам будет моя отдельная благодарность.
Часовой пояс — это географический регион с одинаковым стандартным временем. Обычно часовой пояс задается во время установки операционной системы, но его можно легко изменить позже.
Использование правильного часового пояса необходимо для многих системных задач и процессов. Например, демон cron использует часовой пояс системы для выполнения заданий cron. Часовой пояс также используется для отметок времени журналов.
В этом руководстве описаны действия, необходимые для установки или изменения часового пояса в Linux.
Проверка текущего часового пояса
timedatectl
— это timedatectl
программа командной строки, которая позволяет просматривать и изменять системное время и дату. Он доступен во всех современных системах Linux на базе systemd.
Чтобы просмотреть текущий часовой пояс, вызовите команду timedatectl
без каких-либо параметров или аргументов:
timedatectl
Local time: Tue 2019-12-03 16:30:44 UTC
Universal time: Tue 2019-12-03 16:30:44 UTC
RTC time: Tue 2019-12-03 16:30:44
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
systemd-timesyncd.service active: yes
RTC in local TZ: no
Приведенный выше вывод показывает, что часовой пояс системы установлен на UTC.
Системный часовой пояс настраивается путем символьной привязки файла /etc/localtime
к идентификатору двоичного часового пояса в каталоге /usr/share/zoneinfo
.
Другой способ проверить часовой пояс — просмотреть путь, на который указывает символическая ссылка, с помощью команды ls
:
ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Dec 3 16:29 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
Изменение часового пояса в Linux
Перед изменением часового пояса вам нужно узнать длинное название часового пояса, который вы хотите использовать. В соглашении об именах часовых поясов обычно используется формат «Регион / Город».
Чтобы просмотреть все доступные часовые пояса, используйте команду timedatectl
или перечислите файлы в каталоге /usr/share/zoneinfo
:
timedatectl list-timezones
...
America/Montserrat
America/Nassau
America/New_York
America/Nipigon
America/Nome
America/Noronha
...
Как только вы определите, какой часовой пояс соответствует вашему местоположению, выполните следующую команду от имени пользователя root или sudo :
sudo timedatectl set-timezone <your_time_zone>
Например, чтобы изменить часовой пояс системы на America/New_York
, введите:
sudo timedatectl set-timezone America/New_York
Чтобы проверить изменение, снова вызовите команду timedatectl
:
timedatectl
Local time: Tue 2019-12-03 13:55:09 EST
Universal time: Tue 2019-12-03 18:55:09 UTC
RTC time: Tue 2019-12-03 18:02:16
Time zone: America/New_York (EST, -0500)
System clock synchronized: no
systemd-timesyncd.service active: yes
RTC in local TZ: no
Миссия выполнена! Вы успешно изменили часовой пояс вашей системы.
Изменение часового пояса путем создания символической ссылки
Если вы используете более старый дистрибутив Linux и утилита timedatectl
отсутствует в вашей системе, вы можете изменить часовой пояс, установив символическую ссылку /etc/localtime
на часовой пояс в каталоге /usr/share/zoneinfo
.
Удалить текущую символическую ссылку или файл:
sudo rm -rf /etc/localtime
Определите часовой пояс, который вы хотите настроить, и создайте символическую ссылку :
sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
Проверьте это, перечислив файл /etc/localtime
или вызвав команду date
:
date
Выходные данные включают часовой пояс, в данном примере это «EST».
Tue Dec 3 14:10:54 EST 2019
Выводы
Чтобы изменить часовой пояс в системах Linux, используйте команду sudo timedatectl set-timezone
за которой следует длинное имя часового пояса, который вы хотите установить.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Многие новые пользователи, которые только перешли на Linux с операционной системы Windows, и пока все еще запускают эту систему время от времени, сталкиваются с проблемой, что после загрузки Windows в Ubuntu сбивается время на несколько часов назад или вперед, затем после нескольких перезагрузок уже сложно понять какое сейчас время.
Все это происходит из-за различий формата хранения времени в этих операционных системах. И будет происходить при каждой перезагрузке, сколько бы вы ни устанавливали правильное время. Но эту проблему можно решить. И даже несколькими способами. В этой статье мы рассмотрим, как решить проблему сбивается время в Ubuntu и Windows.
Почему так происходит?
Как я уже сказал, проблема в разных форматах хранения и восстановления времени. В компьютере есть два вида часов. Аппаратные — идут всегда, даже когда компьютер выключен и программные часы, встроенные в ядро. Когда компьютер включается значение аппаратных часов записывается в программные, и в дальнейшем операционная система берет время оттуда. Но Windows и Linux работают по-разному с этими двумя часами. Есть два способа работы:
- UTC — и аппаратные, и программные часы идут по Гринвичу. То есть часы дают универсальное время на нулевом часовом поясе. Например, если у вас часовой пояс GMT+3, Киев, то часы будут отставать на три часа. А уже пользователи локально прибавляют к этому времени поправку на часовой пояс, например, плюс +3. Каждый пользователь добавляет нужную ему поправку. Так делается на серверах, чтобы каждый пользователь мог получить правильное для своего часового пояса время.
- localtime — в этом варианте программные часы тоже идут по Гринвичу, но аппаратные часы идут по времени локального часового пояса. Для пользователя разницы никакой нет, все равно нужно добавлять поправку на свой часовой пояс. Но при загрузке и синхронизации времени Windows вычитает из аппаратного времени 3 часа (или другую поправку на часовой пояс), чтобы программное время было верным.
Так почему же сбивается время Ubuntu и Windows? Вот, допустим, работает Windows, и со временем там все нормально, оно сохранено в формате localtime. Но при перезагрузке в Linux, операционная система берет время Localtime, и думает что это UTC. Таким образом, пользователь будет брать уже правильное время, и прибавлять к нему поправку на часовой пояс. Поэтому время уже будет неверным.
Дальше вы исправили время, и теперь аппаратные часы работают в UTC. Но затем грузите WIndows. Система думает, что это localtime и для установки правильного программного времени добавляет к аппаратному поправку на часовой пояс, например, в нашем случае +3. Дальше каждый пользователь еще раз применяет эту поправку и время уже сбито, опять.
Единственно верный способ решить эту проблему — заставить обе системы работать по одному формату и сделать это совсем не сложно. Причем можно пойти двумя путями: либо заставить Windows работать по UTC, либо Linux по формату localtime, что является не совсем правильным, но вполне возможно. Итак перейдем к решению проблемы сбивается время в Ubuntu.
Настройка Windows для работы по UTC
Итак, если у вас сбивается время Windows и Linux при переключении между операционными системами, лучшим способом будет заставить Windows работать по более правильному и логичному формату. Для этого достаточно добавить один ключ реестра. Вы можете сделать это с помощью одной команды в консоли. Чтобы открыть консоль в Windows 10 проведите мышь в левый нижний угол, затем нажмите правую кнопку. В контекстном меню выберите Командная строка (администратор):
Дальше наберите команду для 32 битных систем:
> Reg add HKLMSYSTEMCurrentControlSetControlTimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
А для 64-битных, нужно использовать тип значения REG_QWORD:
> Reg add HKLMSYSTEMCurrentControlSetControlTimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
Почти готово, но служба времени Windows независимо от этой настройки будет писать время в местном формате при обновлении его через интернет, поэтому удобно эту службу отключить. Для этого выполните:
> sc config w32time start= disabled
Как вернуть обратно?
Если вы хотите вернуть все как было, то сделать это можно проще простого. Сначала возвращаем ключ реестра в правильное положение:
> Reg add HKLMSYSTEMCurrentControlSetControlTimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
И запускаем обратно службу синхронизации:
> sc config w32time start= demand
Готово, а дальше рассмотрим, как заставить Linux использовать формат времени localtime.
Настройка Linux для работы localtime
По умолчанию Linux использует формат хранения времени UTC, но если Ubuntu сбивает время Windows, вы можете очень просто заставить систему хранить в аппаратном таймере местное время. Во всех дистрибутивах, использующих Systemd, в том числе в Ubuntu для этого достаточно выполнить команду:
sudo timedatectl set-local-rtc 1 --adjust-system-clock
Чтобы посмотреть текущее состояние аппаратных и программных часов выполните:
sudo timedatectl
Готово, теперь вы можете перезапустить компьютер и запустить Windows, чтобы убедиться, что время не сбивается при перезагрузке. В более старых системах Ubuntu, вам нужно отредактировать файл /etc/default/rcS и заменить UTC=yes на UTC=no. Вы можете сделать это командой:
sudo sed -i 's/UTC=yes/UTC=no/' /etc/default/rcS
Как вернуть обратно?
Опять же, вернуть все как было можно с помощью одной команды:
sudo timedatectl set-local-rtc 0
А в старых дистрибутивах Ubuntu:
sudo sed -i 's/UTC=no/UTC=yes/' /etc/default/rcS
Выводы
Вот и все. Теперь, если вы столкнетесь с проблемой Windows 10 — сбивается время Ubuntu или любом другом Linux дистрибутиве, вы уже будете знать, как её решить с помощью двух полностью работающих способов. Если у вас остались вопросы, спрашивайте в комментариях!
Мы разобрались, как настроить правильное время в Ubuntu и Windows, чтобы временные зоны не сбивались, но что такое временные зоны и зачем они нужны, на завершение видео про это:
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Часовой пояс — это географический регион с одинаковым стандартным временем. Обычно часовой пояс устанавливается во время установки операционной системы, но его можно легко изменить позже.
Использование правильного часового пояса необходимо для многих задач и процессов, связанных с системами. Например, демон cron использует часовой пояс системы для выполнения заданий cron. Часовой пояс также используется для временных меток журналов.
Проверка текущего часового пояса
timedatectl
утилита командной строки, которая позволяет вам просматривать и изменять системное время и дату. Он доступен во всех современных системах Linux на основе systemd.
Чтобы просмотреть текущий часовой пояс, вызовите timedatectl
команду без каких-либо параметров или аргументов:
timedatectl
Local time: Tue 2019-12-03 16:30:44 UTC
Universal time: Tue 2019-12-03 16:30:44 UTC
RTC time: Tue 2019-12-03 16:30:44
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
systemd-timesyncd.service active: yes
RTC in local TZ: no
Вывод выше показывает, что часовой пояс системы установлен в UTC.
Часовой пояс системы настраивается путем символической ссылки /etc/localtime
файла на двоичный идентификатор часового пояса в /usr/share/zoneinfo
каталоге.
Другой способ проверить часовой пояс — просмотреть путь, на который указывает символическая ссылка, с помощью ls
команды:
ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Dec 3 16:29 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
Изменение часового пояса в Linux
Перед сменой часового пояса вам необходимо узнать полное название часового пояса, которое вы хотите использовать. Соглашение о присвоении имен часовым поясам обычно использует формат «Регион / Город».
Чтобы просмотреть все доступные часовые пояса, используйте timedatectl
команду или перечислите файлы в /usr/share/zoneinfo
каталоге:
timedatectl list-timezones
...
America/Montserrat
America/Nassau
America/New_York
America/Nipigon
America/Nome
America/Noronha
...
Как только вы определите, какой часовой пояс соответствует вашему местоположению, выполните следующую команду от имени пользователя root или sudo :
sudo timedatectl set-timezone <your_time_zone>
Например, чтобы изменить часовой пояс системы, America/New_York
введите:
sudo timedatectl set-timezone America/New_York
Чтобы проверить изменение, timedatectl
снова вызовите команду:
timedatectl
Local time: Tue 2019-12-03 13:55:09 EST
Universal time: Tue 2019-12-03 18:55:09 UTC
RTC time: Tue 2019-12-03 18:02:16
Time zone: America/New_York (EST, -0500)
System clock synchronized: no
systemd-timesyncd.service active: yes
RTC in local TZ: no
Миссия выполнена! Вы успешно изменили часовой пояс вашей системы.
Изменение часового пояса путем создания символической ссылки
Если вы используете более старый дистрибутив Linux, а timedatectl
утилита отсутствует в вашей системе, вы можете изменить часовой пояс, вставив ссылку /etc/localtime
на часовой пояс в /usr/share/zoneinfo
каталоге.
Удалить текущую символическую ссылку или файл:
sudo rm -rf /etc/localtime
Определите часовой пояс, который вы хотите настроить, и создайте символическую ссылку :
sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
Проверьте это, перечислив /etc/localtime
файл или вызвав date
команду:
date
Выходные данные включают часовой пояс, в этом примере это «EST».
Tue Dec 3 14:10:54 EST 2019
Вывод
Чтобы изменить часовой пояс в системах Linux, используйте sudo timedatectl set-timezone
команду, за которой следует длинное имя часового пояса, которое вы хотите установить.
Введение | |
date: Узнать текущие системные дату и время | |
hwclock: Узнать текущие дату и время BIOS | |
Изменить дату и время вручную | |
Синхронизация с ntp | |
Разрешить ntp в Firewall | |
Проверить статус chronyd | |
Запустить chronyd | |
Остановить chronyd | |
tracking: проверка синхронизации | |
Посмотреть текущие сервера | |
Заставить систему синхронизовать время с ntp | |
Timezone | |
Статьи про Rocky |
Введение
При работе в сети синхронизация времени и даты это важный
фактор увеличивающий стабильность и
безопасность
работы всех систем.
В этой статье вы узнаете как настраивать дату и время вручную. И, что более
важно — как синхронизировать их с ntp сервером.
Узнать текущее системное время
Узнать текущее системное время можно командой
date
date
2020-12-27 11:25:17.364911+02:00
Узнать текущее время BIOS
Узнать текущее системное время BIOS можно командой
hwclock
sudo hwclock
2020-12-27 11:28:17.389911+02:00
date и hwclock
могут показывать совершенно разное время
Исправить текущее время
Сначала нужно задать время командой
date
date MMDDhhmmCCYY.ss
MM | две цифры текущего месяца (пример: январь=01); |
DD | две цифры текущей даты (если текущий календарный день 1, то пишется 01); |
hh | две цифры обозначающие час |
mm | две цифры обозначающие минуты |
CCYY | четыре цифры года |
ss | две цифры секунд |
Также можно вводить «date MMDDhhmmCCYY»
без секунд, тогда секунды выставляются на ноль.
После выполнения date нужно внести новое установленное время в BIOS:
hwclock —systohc
Теперь осталось только проверить сохранились ли изменения
sudo hwclock
Синхронизация с ntp
В качестве ntp сервера и клиента в Rocky используется утилита
chrony
which chronyd
/usr/sbin/chronyd
Если chrony не установлен выполните
sudo yum install -y chrony
Проверьте запускается ли chronyd автоматически командой
systemctl list-unit-files | grep chronyd.s
chronyd.service disabled
Если ntpd неактивен (disabled) выполните
systemctl start chronyd
systemctl enable chronyd
Разрешить ntp в Firewall
Проверить добавлен ли сервис ntp в зону public в firewall можно командой
sudo firewall-cmd —get-services | grep ntp
Если ещё не добавлен, то чтобы разрешить UDP траффик от ntp выполните
firewall-cmd —permanent —add-service=ntp
firewall-cmd —reload
success
success
Отредактируйте файл
crony.conf
с настройками сервера
vi /etc/crony.conf
server 0.fi.pool.ntp.org
server 1.fi.pool.ntp.org
server 2.fi.pool.ntp.org
server 3.fi.pool.ntp.org
Теперь нужно перезапустить chronyd
systemctl restart chronyd
Проверить откуда берётся время можно командой
chronyc sources
210 Number of sources = 4
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- ukk0.internationalconspi> 3 10 377 236 -146us[ -146us] +/- 17ms
^- static.52.142.216.95.cli> 2 10 377 335 -1869us[-1869us] +/- 44ms
^- 50-205-244-107-static.hf> 2 10 377 659 +2445us[+2489us] +/- 85ms
^* time.cloudflare.com 3 10 377 394 +206us[ +250us] +/- 4012us
Выставить время BIOS по только что полученному времени можно командой
hwclock —systohc
Заставить систему синхронизовать время с ntp
Можно следующей командой
chronyc makestep
Разрешить всё что ещё неразрешено:
sudo sed -i ‘s/#allow/allow/‘ /etc/chrony.conf
Проверить статус chronyd
systemctl status chronyd
● chronyd.service — NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:chronyd(8)
man:chrony.conf(5)
Запустить chronyd
systemctl start chronyd
● chronyd.service — NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2023-02-10 13:52:05EEST; 1s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 2878 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
Process: 2874 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 2876 (chronyd)
Tasks: 1 (limit: 23548)
Memory: 788.0K
CGroup: /system.slice/chronyd.service
└─2876 /usr/sbin/chronyd
Feb 10 13:52:05 localhost.localdomain systemd[1]: Starting NTP client/server…
Feb 10 13:52:05 localhost.localdomain chronyd[2876]: chronyd version 3.5 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
Feb 10 13:52:05 localhost.localdomain chronyd[2876]: Using right/UTC timezone to obtain leap second data
Feb 10 13:52:05 localhost.localdomain systemd[1]: Started NTP client/server.
Feb 10 13:52:05 localhost.localdomain chronyd[2876]: Selected source 162.159.200.123
Feb 10 13:52:05 localhost.localdomain chronyd[2876]: System clock TAI offset set to 37 seconds
Остановить chronyd
systemctl stop chronyd
Перезапустить chronyd
systemctl restart chronyd
tracking: проверка синхронизации
Чтобы проверить есть ли синхронизация выполните
chronyc tracking
Reference ID : 4E2412B8 (78-36-18-184.dynamic.murmansk.dslavangard.ru)
Stratum : 2
Ref time (UTC) : Fri Feb 10 13:52:05 2023
System time : 0.000049305 seconds fast of NTP time
Last offset : -0.000010323 seconds
RMS offset : 0.000790649 seconds
Frequency : 4.357 ppm fast
Residual freq : +0.154 ppm
Skew : 1.831 ppm
Root delay : 0.034635838 seconds
Root dispersion : 0.000497150 seconds
Update interval : 64.6 seconds
Leap status : Normal
Пояснения:
Reference ID – the reference ID and name to which the computer is currently synced.
Stratum – number of hops to a computer with an attached reference clock.
Ref time – this is the UTC time at which the last measurement from the reference source was made.
System time – delay of system clock from synchronized server.
Last offset – estimated offset of the last clock update.
RMS offset – long term average of the offset value.
Frequency – this is the rate by which the system’s clock would be wrong if chronyd is not correcting it. It is provided in ppm (parts per million).
Residual freq – residual frequency indicated the difference between the measurements from reference source and the frequency currently being used.
Skew – estimated error bound of the frequency.
Root delay – total of the network path delays to the stratum computer, from which the computer is being synced.
Leap status – this is the leap status which can have one of the following values – normal, insert second, delete second or not synchronized.
To check information about chrony’s sources, you can issue the following command.
Конфигурация chronyd
sudo vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
pool 2.pool.ntp.org iburst
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *
# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2
# Allow NTP client access from local network.
#allow 192.168.0.0/16
# Serve time even if not synchronized to a time source.
#local stratum 10
# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys
# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC
# Specify directory for log files.
logdir /var/log/chrony
# Select which information is logged.
#log measurements statistics tracking
Timezone
Узнать текущую временную зону
timedatectl
Local time: Fri 2023-02-10 13:52:05 MDT
Universal time: Fri 2023-02-10 13:52:05 UTC
RTC time: Fri 2023-02-10 13:52:05
Time zone: America/Denver (MDT, -0600)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2021-03-14 01:59:59 MST
Sun 2021-03-14 03:00:00 MDT
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2021-11-07 01:59:59 MDT
Sun 2021-11-07 01:00:00 MST
Изменить временную зону можно командой set-timezone
timedatectl set-timezone «Europe/Helsinki»
Проверить результат
timedatectl | grep «Time zone»
Time zone: Europe/Helsinki (EEST, +0300)
Rocky Linux | |
Установка Rocky | |
Настройка сети в Rocky | |
Firewall | |
Дата и время | |
X Window System Rocky | |
XRDP: Удалённый рабочий стол | |
VNC: Удалённый рабочий стол | |
Изменить machine-id | |
Изменить ulimit | |
xclip: работа с буфером обмена | |
SELinux | |
docker-ce: установка в Rocky | |
dnf vs yum | |
FAQ | |
Ошибки |