「Linux」- 使用 systemd-timesyncd 同步时间

  CREATED BY JENKINSBOT

systemd-timesyncd

内建于 systemd 的、用于时间同步的、轻量级的组件。

注意事项,该组件只能用于时间同步,而不能像 ntpd 一样作为时间服务器。

实验环境概述

操作系统:Debian 10
软件版本:systemd 241 (241)

该操作不适用与 CentOS 7.x 系列:
根据 Systemd TimeSyncdCentOS 7.2 Minimal Time synchronization timedated and/or ntpd/chrony 的描述,RedHat 在编译 systemd 时,移除 systemd-timesyncd 特征。对于 CentOS 7.x 系列,建议使用 chrony 服务。

第一步、卸载其他时间服务

根据 systemd-timesyncd.service 定义,当存在 ntpd、chronyd 等等服务时,无法启动 systemd-timesyncd 服务。可以使用 systemctl cat systemd-timesyncd.service 命令查看 [Unit] 部分来了解。

因此我们需要卸载其他时间服务,卸载方法这里不再展开,这里只列举几种需要卸载的时间服务:

# Debian 10
apt-get purge chrony

第二步、启用 systemd-timesyncd 服务

systemctl start systemd-timesyncd
systemctl enable systemd-timesyncd

# 查看服务状态
systemctl status systemd-timesyncd

如果不卸载其他时间服务程序,命令 systemctl status systemd-timesyncd 将返回 condition failed 错误信息。

第三步、查看时间同步状态

使用 timedatectl 查看时间同步状态:

# timedatectl
               Local time: Mon 2020-05-25 16:19:29 CST
           Universal time: Mon 2020-05-25 08:19:29 UTC
                 RTC time: Mon 2020-05-25 08:19:29
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

System clock synchronized: yes:表示时间已经同步
NTP service: active:表示时间同步服务已经启用并正在运行

参考文献

How To Set Up Time Synchronization on Debian 10