时间同步
在 Arch Linux 中启用时间同步只需运行以下命令:
$ sudo timedatectl set-ntp true
这就足够了。
下面的内容可以不看。:)
xclock
使用以下命令安装 xclock:
$ sudo pacman -S xorg-xclock
然后运行以下命令:
$ xclock -d -update 1 -strftime %T &
就会在屏幕上显示每秒更新一次的数字时钟。
Network Time Protocol daemon
网络时间协议(Network Time Protocol)是 GNU/Linux 系统通过 Internet 时间服务器同步系统软件时钟的最常见方法。设计时考虑到了各种网络延迟,通过公共网络同步时,误差可以降低到 10 毫秒以内;通过本地网络同步时,误差可以降低到 1 毫秒。
在 Arch Linux 中,ntp 软件包实现了网络时间协议,如果不做任何配置,ntpd默认工作于客户端模式。也可以配置ntpd运行于服务器模式。可以通过以下命令查询是否已经安装了ntp软件包:
$ pacman -Ss "^ntp$"
extra/ntp 4.2.8.p3-1
Network Time Protocol reference implementation
如果已经安装了ntp软件包,那么只需要使用以下命令就可以启用时间同步了:
$ sudo ntpd -u ntp:ntp
实际上在大多数情况下,我们并不需要提供 NTP 服务,所以不需要安装ntp软件包,而是使用下一节的方法实现时间同步。
systemd-timesyncd
systemd-timesyncd是一个用于跨网络同步系统时钟的守护服务。它实现了一个 SNTP 客户端。与 NTP 的复杂实现相比,这个服务简单的多,它只专注于从远程服务器查询然后同步到本地时钟。除非你打算为客户端提供 NTP 服务器或者连接本地硬件时钟,否则这个简单的 NTP 客户端应该更适合大多数人。守护进程运行只需要尽可能小特权,并且会跟网络服务 networkd 挂钩,仅在网络连接可用时才工作。每次收到一个新的 NTP 同步请求时,后台服务就把当前时间保存到磁盘,并尽可能在系统启动时修正系统时间,这样处理的目的是为了适应像 Raspberry Pi 和嵌入式设备这种缺少 RTC 的系统,并确保这些系统时单点处理(即使它并不是总是正确的)。
可以通过以下命令启用时间同步:
$ sudo timedatectl set-ntp true
然后通过以下命令检查时间同步状态:
$ timedatectl
Local time: 日 2015-10-18 08:56:18 CST
Universal time: 日 2015-10-18 00:56:18 UTC
RTC time: 日 2015-10-18 00:56:18
Time zone: Asia/Shanghai (CST, +0800)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
$ systemctl status systemd-timesyncd
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Active: active (running) since 日 2015-10-18 07:44:43 CST; 1h 26min ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 288 (systemd-timesyn)
Status: "Synchronized to time server 202.112.29.82:123 (2.arch.pool.ntp.org)."
CGroup: /system.slice/systemd-timesyncd.service
└─288 /usr/lib/systemd/systemd-timesyncd
10月 18 07:44:43 m4250s systemd[1]: Starting Network Time Synchronization...
10月 18 07:44:43 m4250s systemd[1]: Started Network Time Synchronization.
10月 18 07:45:25 m4250s systemd-timesyncd[288]: Timed out waiting for reply ...).
10月 18 07:45:36 m4250s systemd-timesyncd[288]: Timed out waiting for reply ...).
10月 18 07:45:36 m4250s systemd-timesyncd[288]: Synchronized to time server ...).
Hint: Some lines were ellipsized, use -l to show in full.
参考资料