9.5. Настройка системного времени

Этот раздел описывает настройку службы systemd-timedated, которая отвечает за системное время и часовой пояс.

Если вы не помните, установлены ли аппаратные часы в формате UTC, выясните это, выполнив команду hwclock --localtime --show. Она отобразит текущее время в соответствии с аппаратными часами. Если вывод совпадает с вашим текущим временем, то аппаратные часы настроены на локальное время. Если время hwclock не совпадает с текущим, то скорее всего системные часы настроены на часовой пояс UTC. Проверьте это добавлением или вычитанием нужного количества часов для вашего часового пояса. Например, если ваш часовй пояс это MSK, так же известный как GMT +0300, то нужно вычесть три часа из локального времени.

systemd-timedated читает файл /etc/adjtime и в зависимости от его содержимого устанавливает часы в UTC, либо на местное время.

Создайте файл /etc/adjtime со следующим содержимым если ваши аппаратные часы настроены на местное время:

cat > /etc/adjtime << "EOF"
0.0 0 0.0
0
LOCAL
EOF

Если файл /etc/adjtime не будет найден при первой загрузке, то systemd-timedated будет подразумевать, что системные часы настроены на UTC и настроит файл в соответствии с этим.

Вы можете использовать утилиту timedatectl, чтобы сообщить systemd-timedated, что аппаратные часы настроены на UTC или местное время:

timedatectl set-local-rtc 1

timedatectl также может использоваться для изменения системного времени и часового пояса.

Для изменения текущего системного времени выполните:

timedatectl set-time YYYY-MM-DD HH:MM:SS

Аппаратные часы будут установлены на соответствующее значение.

Для изменения текущего часового пояса выполните:

timedatectl set-timezone TIMEZONE

Получить список доступных часовых поясов можно выполнив:

timedatectl list-timezones
[Примечание]

Примечание

Пожалуйста, обратите внимание, что команда timedatectl не работает в chroot окружении. Она может использоваться только после загрузки системы LFS с помощью systemd.

9.5.1. Синхронизация времени по сети

Начиная с версии 213, в состав systemd входит служба systemd-timesyncd, которая занимается синхронизацией системного времени с удаленными NTP серверами.

Служба не предназначается для замены известной службы NTP, она используется в качестве клиента протокола SNTP, подходящего для простых задач и в системах с ограниченными ресурсами.

Начиная с systemd версии 216 служба systemd-timesyncd включена по умолчанию. При желании её можно отключить, выполнив

systemctl disable systemd-timesyncd

В файле /etc/systemd/timesyncd.conf можно настраивать список серверов NTP, используемых systemd-timesyncd для синхронизации.

Обратите внимание, что если системные часы установлены на местное время, systemd-timesyncd не будет обновлять аппартные часы.