- Как установить или изменить часовой пояс в CentOS 8
- Проверка текущего часового пояса
- Изменение часового пояса в CentOS
- Изменение часового пояса путем создания символической ссылки
- Выводы
- CentOS: Настройка даты и времени, пояса, синхронизация с NTP
- Hwclock: настройка аппаратного (системного) времени
- Ручная настройка времени в CentOS
- Настройка часового пояса в CentOS
- Настройка синхронизация времени по NTP в CentOS
- Используем chronyd для синхронизация времени в CentOS 8
- Распространённые ошибки при настройке времени в CentOS
Как установить или изменить часовой пояс в CentOS 8
Использование правильного часового пояса необходимо для многих системных задач и процессов. Например, демон cron использует часовой пояс системы для выполнения заданий cron, а отметки времени в файлах журнала основаны на часовом поясе той же системы.
В CentOS часовой пояс системы устанавливается во время установки, но его можно легко изменить позже.
В этой статье описывается, как установить или изменить часовой пояс в системах CentOS 8.
Проверка текущего часового пояса
timedatectl — это timedatectl программа командной строки, которая позволяет просматривать и изменять системное время и дату. Он доступен во всех современных системах Linux на базе systemd:
На выходе отображается часовой пояс системы. В этом примере часовой пояс установлен на UTC:
Local time: Sat 2020-03-21 21:30:22 UTC Universal time: Sat 2020-03-21 21:30:22 UTC RTC time: Sat 2020-03-21 21:30:22 Time zone: UTC (UTC, +0000) System clock synchronized: yes NTP service: active RTC in local TZ: no
Если вы получили предупреждение: «Система настроена на считывание времени RTC в местном часовом поясе», выполните следующую команду, чтобы использовать RTC в UTC:
Системный часовой пояс настраивается путем символической привязки /etc/localtime к двоичному идентификатору часового пояса в каталоге /usr/share/zoneinfo . Другой способ проверить часовой пояс — показать путь, на который указывает символическая ссылка, с помощью команды ls :
lrwxrwxrwx. 1 root root 23 Nov 21 23:30 /etc/localtime -> /usr/share/zoneinfo/UTC
Изменение часового пояса в CentOS
Перед изменением часового пояса вам необходимо узнать длинное название часового пояса, который вы хотите использовать. Часовые пояса указаны в формате «Регион / Город».
Чтобы timedatectl список всех доступных часовых поясов, вызовите команду timedatectl с опцией list-timezones :
timedatectl list-timezones
. America/Tijuana America/Toronto America/Tortola America/Vancouver America/Whitehorse America/Winnipeg .
Как только вы определите, какой часовой пояс соответствует вашему местоположению, выполните следующую команду от имени пользователя root или пользователя с привилегиями sudo :
sudo timedatectl set-timezone your_time_zone
Например, чтобы изменить часовой пояс системы на America/Toronto :
sudo timedatectl set-timezone America/Toronto
Запустите команду timedatectl чтобы проверить изменения:
Local time: Sat 2020-03-21 17:43:39 EDT Universal time: Sat 2020-03-21 21:43:39 UTC RTC time: Sat 2020-03-21 21:43:40 Time zone: America/Toronto (EDT, -0400) System clock synchronized: yes NTP service: active RTC in local TZ: no
Изменение часового пояса путем создания символической ссылки
Если вы используете более старую версию CentOS и в timedatectl системе timedatectl команды timedatectl , вы можете изменить часовой пояс, установив символическую ссылку /etc/localtime на файл часового пояса в каталоге /usr/share/zoneinfo .
Определите часовой пояс, который вы хотите настроить, и создайте символическую ссылку :
sudo ln -sf /usr/share/zoneinfo/America/Toronto /etc/localtime
Проверьте изменения, указав файл /etc/localtime или timedatectl команды timedatectl или date :
Sat Mar 21 17:46:10 EDT 2020
Выводы
Мы показали вам, как изменить часовой пояс вашей системы CentOS.
Если вы столкнулись с какой-либо проблемой, не стесняйтесь оставлять комментарий.
CentOS: Настройка даты и времени, пояса, синхронизация с NTP
10.12.2019
VyacheslavK
CentOS, Linux
комментария 3
В данной статье я расскажу, как настроить время, дату и изменить часовой пояс(timezone) в Linux CentOS, как выполнять синхронизацию времени с NTP сервером и исправить типичные ошибки.
На серверах существует два вида часов. Аппаратные (real time clock), которые работают даже при выключенном сервере и программные часы операционной системы. Показания этих двух часов, могут отличаться. При этом, после запуска операционной системы, программные часы опираются на показания аппаратных и в дальнейшем могут корректироваться системой.
Абсолютное большинство программ в своей работе используют время программных часов.
Hwclock: настройка аппаратного (системного) времени
Чтобы проверить аппаратное время в Linux используется утилита hwclock:
- hwclock —localtime — проверка аппаратного времени без поправки
- hwclock —utc – проверка времени с условием, что аппаратные часы идут по времени UTC
Wed 27 Nov 2019 11:28:28 AM +06 -1.012225 seconds
Wed 27 Nov 2019 05:28:30 PM +06 -0.045476 seconds
Чтобы установить аппаратное время равное системному времени, выполните команду:
Чтобы установить конкретное время, выполните:
# hwclock —set —date «27 Nov 2019 17:30»
Ручная настройка времени в CentOS
В Linux за программное время отвечает утилита date или timedatectl. Если вызывать утилиту date без параметров, она покажет текущее время на сервере:
Wed Nov 27 17:40:56 +06 2019
Если вы хотите выставить время вручную, можно воспользоваться утилитой date с дополнительными ключами:
Где MM – месяц, DD — день, hh – час, mm – минуты.
Для получения расширенной информации о дате, времени, поясе, синхронизации, настройках перехода на сезонное (летнее/зимнее) время (DST), используется утилита timedatectl. Она дает более подробную информацию о настройках времени на сервере.
Timedatectl также позволяет изменить время:
# timedatectl set-time ‘2019-11-27 17:51:00’
Настройка часового пояса в CentOS
Чтобы время на сервере CentOS Linux соответствовало вашему часовому поясу, его можно изменить вручную. Для этого есть две утилиты:
Чтобы изменить часовой пояс через утилиту timedatectl, выполните команду:
# timedatectl set-timezone Europe/Moscow
Или же можно использовать tzdata. Чтобы воспользоваться данным методом, нужно заменить файл /etc/localtime на нужный вам. Весь список часовых поясов, расположен в директории /usr/share/zoneinfo/. Заменим часовой пояс на Asia/Almaty. Делаем бэкап файла locatime:
# mv /etc/localtime /etc/localtime.bak
Создаем симлинк на нужный часовой пояс:
# ln -s /usr/share/zoneinfo/Asia/Almaty /etc/localtime
Настройка синхронизация времени по NTP в CentOS
Вы можете настроить автоматическую синхронизацию времени на вашем сервере с внешним NTP (Network Time Protocol) сервером. Для этого нужно установить сервис ntp. Например, в CentOS 7 установка выполняется через yum:
После установки, нужно запустить сервис ntpd и добавить его в автозагрузку:
# systemctl start ntpd.service
# systemctl enable ntpd.service
Проверим, что сервис запущен:
Redirecting to /bin/systemctl status ntpd.service ● ntpd.service - Network Time Service Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2019-11-28 09:47:33 +06; 5min ago Main PID: 3057 (ntpd) CGroup: /system.slice/ntpd.service └─3057 /usr/sbin/ntpd -u ntp:ntp -g
В файле /etc/ntp.conf нужно указать сервера, с которыми нужно синхронизировать время:
server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org
Синхронизация времени выполняется последовательно. Если недоступен первый NTP сервер, идет обращение ко второму и т.д.
Можно вручную синхронизировать время с указанным NTP сервером командой:
По умолчанию, ntpd включает в системе режим “11 minute mode”, то есть время будет синхронизироваться каждые 11 минут. Если вы не можете использовать демон ntpd, вы можете настроить синхронизацию времени по крону, добавьте в крон следующую команду:
Используем chronyd для синхронизация времени в CentOS 8
Для CentOS 8 из официальных репозиториев убрали ntp и ntpdate, поэтому для синхронизации времени нужно использовать chrony.
Основные преимущества chrony:
- высокая скорость и точность синхронизции
- корректная работа при отсутствии доступа к эталонным часам (ntpd требуются регулярные запросы)
- по-умолчанию не меняет сразу время при синхронизации, чтобы не нарушить работу программ
- Меньше использует ресурсов
По умолчанию, утилита chrony уже установлена в системе, но если по какой-то причина у вас ее нет, выполните установку:
Как и любой другой сервис, после установки chrony нужно включить и добавить в автозагрузку:
# systemctl start chronyd
# systemctl enable chronyd
Чтобы проверить, что синхронизация работает, выполнитите команду:
Конфигурационный файл chrony — /etc/chrony.conf. В нем нужно указать список NTP серверов, которые нужно использовать для синхронизации. Как и у ntp, у chrony есть интерфейс командной строки chronyc. Чтобы проверить информацию о текущих параметрах синхронизации времени, используйте:
Чтобы проверить информацию о серверах синхронизации, выполните команду:
Если вы хотите установить конкретное время и дату вручную, вы можете воспользоваться утилитой date, но перед этим нужно отключить демон chronyd.
Распространённые ошибки при настройке времени в CentOS
В данном разделе, я опишу частые ошибки, которые возникают при работе с утилитами timedatectl, ntp.
При ручной синхронизации времени, у вас может возникнуть подобная ошибка:
ntpdate [26214]: the NTP socket is in use, exiting
Она означает, что у вас запущен демон ntpd, который блокирует ручную синхронизация времени. Чтобы выполнить ручную синхронизацию, остановите демон ntpd:
И запустите синхронизацию заново:
Аналогичная ошибка может возникать и при работе с утилитой timedatectl:
Failed to set time: Automatic time synchronization is enabled.
Теперь нужно отключить автоматическую синхронизацию в самой утилите timedatectl:
И выполнить команду по установке конкретного времени:
При работе с часовыми поясами, они могут быть не установлены у вас на сервере и создать симлинк для localtime не получится. Для того, чтобы в системе были доступны часовые пояса, установите утилиту tzdata:
Так при ручной синхронизации, часто бывают ошибки вида:
28 Nov 10:12:39 ntpdate[897482]: sendto(185.217.191.98): Operation not permitted
В этом случае проверьте правила firewalld / iptables, и убедитесь, что у вас на сервере открыт UDP порт 123. Так же некоторые хосты синхронизации могут быть недоступны в момент проверки.
Предыдущая статья Следующая статья