systemd-timesyncd

介绍

systemd-timesyncd 是一个用于跨网络同步系统时钟的守护服务。它实现了一个 SNTP 客户端。与NTP的复杂实现相比,这个服务简单的多,它只专注于从远程服务器查询然后同步到本地时钟。除非你打算为客户端提供 NTP 服务器或者连接本地硬件时钟,否则这个简单的NTP客户端应该更适合大多数人。守护进程运行只需要尽可能小特权,并且会跟网络服务 networkd 挂钩,仅在网络连接可用时才工作。每次收到一个新的NTP同步请求时,后台服务就把当前时间保存到磁盘,并尽可能在系统启动时修正系统时间,这样处理的目的是为了适应像Raspberry Pi和嵌入式设备这种缺少 RTC 的系统,并确保这些系统时单点处理(即使它并不是总是正确的)。

配置文件介绍

systemd-timesyncd 启动时会读取 /etc/systemd/timesyncd.conf 配置文件,内容如下:

kylin@kylin:~$ sudo vim /etc/systemd/timesyncd.conf

systemd-timesyncd_第1张图片

默认虽然上面的选项都处于注释状态,当设备联网时,systemd-timesyncd还是会去默认的NTP服务器进行同步,如果设备未联网,服务会一直等待到网络连接才开始同步网络时间

如果要更改NTP服务器请修改上面的选项,选项解释如下:

NTP=
一个空格分隔的NTP服务器列表, 可以使用主机名,也可以使用IP地址。

FallbackNTP=
一个空格分隔的NTP服务器列表,用作备用NTP服务器。 可以使用主机名,也可以使用IP地址。

RootDistanceMaxSec=
最大可接受的"root distance"秒数(最大误差) 默认值为 5 秒。

PollIntervalMinSec=, PollIntervalMaxSec=
NTP
消息的 最小/最大轮询间隔秒数。 PollIntervalMinSec= 必须不小于 16 秒。 PollIntervalMaxSec= 必须大于 PollIntervalMinSec= PollIntervalMinSec= 默认为 32 秒, PollIntervalMaxSec= 默认为 2048 秒。对时间隔在最大和最小间隔之间

测试轮询间隔秒数

1.客户端测试脚本(每秒输出时间到指定文本)

systemd-timesyncd_第2张图片

2.客户端测试脚本(每秒将时间修改为9:00)

systemd-timesyncd_第3张图片

3.修改客户端timesyncd.conf配置文件1

测试结果1

systemd-timesyncd_第4张图片

4.修改客户端timesyncd.conf配置文件2

systemd-timesyncd_第5张图片

测试结果2

systemd-timesyncd_第6张图片

使用

举例将同步的NTP服务器设置成内网ntp服务器

kylin@kylin:~$ sudo vim /etc/systemd/timesyncd.conf

 ##只设置NTP这行,其它的不必,增加2NTP服务器,中间用空格隔开

重启systemd-timesyncd服务生效

kylin@kylin:~$ sudo systemctl restart systemd-timesyncd.service

再次查看服务状态

kylin@kylin:~$ sudo systemctl statust systemd-timesyncd.service

验证使用

systemd-timesyncd_第7张图片

kylin@kylin:~$ timedatectl show-timesync --all

systemd-timesyncd_第8张图片

你可能感兴趣的:(systemd)