Linux 时间同步

目录

NTP 服务​

systemd-timesyncd​

配置​

timedatectl​

date​

hwclock​

Q&A​

时间服务器同步的频率是多少?​


无论是 Linux 服务器还是嵌入式设备,只要有网络连接需求,都需要保持时间同步。对许多应用场景来说,时间的准确性都至关重要,例如数据采集上报、订单信息提交、即时通讯等等。

Linux 系统为我们提供了一些与时间同步相关的服务和命令,下面将一一介绍。

NTP 服务

NTP 是网络时间协议(Network Time Protocol)的简称,主要用于网络时间的同步,诞生于 20 世纪 80 年代,至今仍是互联网的基础性协议之一,使用 UDP 123 端口。

NTP 基于客户端(client)和服务器(server)架构,客户端发出包含客户端发出时间的数据包,服务器收到数据包并回复,回复的数据包中附加了服务器收到和发出数据包的时间。客户端收到回复后便获知自己与服务器的时间差,以及网络延迟时间,并据此调整自己的系统时间,达到时间同步的目的。

在 Linux 系统中,ntpq 命令可用于查询网络中连接的 NTP 服务器,例如:

$ sudo ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 127.127.1.0     .LOCL.          10 l    -   64    0    0.000    0.000   0.000
*120.25.115.20   10.137.53.7      2 u  850 1024  377    1.288    0.108   0.280

行首加 * 号的是当前服务器。同时还列出了网络延迟时间(delay)、与服务器的时间差(offset)等关键的 NTP 时间数据。

如果时间不对,可以执行下面命令强制同步 NTP 时间:

$ sudo service ntp stop
$ sudo ntpd -gq
$ sudo service ntp start

systemd-timesyncd

systemd-timesyncd 是一个用于跨网络同步系统时钟的守护服务,它实现了一个 SNTP 客户端。与 NTP 的复杂实现相比,这个服务简单的多,它只专注于从远程服务器查询然后同步到本地时钟。除非你打算为客户端提供 NTP 服务器或者连接本地硬件时钟,否则这个简单的 NTP 客户端应该更适合大多数设备。

systemd-timesyncd 守护进程运行只需要很少的特权,并且会跟网络服务 networkd 挂钩,仅在网络连接可用时才工作。每次收到一个新的 NTP 同步请求时,后台服务就把当前时间保存到磁盘,并尽可能在系统启动时修正系统时间,这样处理的目的是为了适应像 Raspberry Pi 这种缺少 RTC 的嵌入式设备。

如果要使用这个守护进程,需要在安装系统时创建一个新的系统用户和组"syste

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏马潜行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值