大多数情况下,服务器的默认时区为UTC时区,如上面的输出所示。UTC是世界协调时间,经度为零度的时间。当您的基础架构跨越多个时区时,始终如一地使用通用时间可以减少混淆。
如果您有不同的要求并需要更改时区,则可以使用以下命令列出可用时区
timedatectl list-timezones
查看当前时区
root@co:~# timedatectl status
Local time: Fri 2022-01-28 06:23:13 UTC
Universal time: Fri 2022-01-28 06:23:13 UTC
RTC time: Fri 2022-01-28 06:23:13
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
root@co:~#
设置时区为亚洲上海
timedatectl set-timezone "Asia/Shanghai"
执行命令进行验证
root@coco:~# timedatectl status
Local time: Fri 2022-01-28 14:26:34 CST
Universal time: Fri 2022-01-28 06:26:34 UTC
RTC time: Fri 2022-01-28 06:26:34
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
root@coco:~#
现在我们知道如何检查时钟和设置时区,让我们确保我们的时间正确同步
使用timedatectl控制时间同步
直到最近,大多数网络时间同步都由网络时间协议守护程序或ntpd处理。此服务连接到其他NTP服务器池,为其提供持续且准确的时间更新。
Ubuntu的默认安装现在使用timesyncd而不是ntpd。timesyncd连接到相同的时间服务器,并以大致相同的方式工作,但更轻量级,更集成systemd和Ubuntu的低级别工作。
我们可以通过不带参数运行timedatectl来查询timesyncd的状态。
root@tfw:~# timedatectl
Local time: Thu 2022-02-24 16:28:52 CST
Universal time: Thu 2022-02-24 08:28:52 UTC
RTC time: Thu 2022-02-24 08:28:52
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
root@tfw:~#
这将打印出本地时间,通用时间(如果您没有从UTC时区切换,可能与本地时间相同),以及一些网络时间状态信息。 System clock synchronized: yes表示时间已成功同步,systemd-timesyncd.service active: yes表示已启用并运行timesyncd。
如果timesyncd未激活,请使用timedatectl将其打开:
sudo timedatectl set-ntp on
切换到ntpd同步时间
尽管时间同步对于大多数目的来说都很好,但是对于即使是最轻微的时间扰动非常敏感的一些应用程序也可以通过ntpd更好地服务,因为它使用更复杂的技术来不断地逐步保持系统时间的正常运行。
在安装ntpd之前,我们应该关闭timesyncd:
sudo timedatectl set-ntp no
验证timesyncd是否已关闭:
timedatectl
在输出中查找systemd-timesyncd.service active: no。这意味着timesyncd已经停止。
我们现在可以用apt安装ntp包:
sudo apt update
sudo apt install ntp
ntpd将在安装后自动启动。您可以在ntpd中查询状态信息,以验证一切正常:
ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
+ec2-52-0-56-137 216.239.35.0 2 u 16 64 1 7.872 -2.137 1.485
+66.220.10.2 129.6.15.30 2 u 12 64 1 65.204 3.740 2.686
+block.steinhoff 209.51.161.238 2 u 11 64 1 33.364 1.710 3.586
+eterna.binary.n 216.229.0.50 3 u 11 64 1 35.330 2.821 2.839
+2604:a880:800:1 209.51.161.238 2 u 14 64 1 0.394 0.386 2.462
+ec2-52-6-160-3. 130.207.244.240 2 u 11 64 1 8.150 2.050 3.053
+mx.danb.email 127.67.113.92 2 u 13 64 1 63.868 1.539 2.240
*hydrogen.consta 129.6.15.28 2 u 12 64 1 2.989 1.755 2.563
+ntp-3.jonlight. 127.67.113.92 2 u 10 64 1 64.561 2.122 3.593
+undef.us 45.33.84.208 3 u 12 64 1 33.508 1.631 3.647
ntpq是ntpd的查询工具。该-p标志要求提供关于所述NTP服务器(或信息p EERS)NTPD已连接到。您的输出会略有不同,但应列出默认的Ubuntu池服务器以及其他一些服务器。请记住,ntpd建立连接可能需要几分钟时间。