介绍
准确的时间安排是现代软件部署不可或缺的组成部分。如果没有它,您可能会遇到数据损坏、错误和其他难以调试的问题。时间同步可帮助确保您的日志以正确的顺序记录,并适当地应用数据库更新。
幸运的是,Ubuntu 20.04 内置了时间同步并默认使用 systemd 的timesyncd
服务。 在本文中,您将练习一些与时间相关的通用命令,验证timesyncd
是活跃的,并安装替代网络时间服务。
前提条件
在开始本教程之前,您将需要一个 Ubuntu 20.04 服务器,具有非根, sudo 启用的用户和防火墙,如在 本 Ubuntu 20.04 服务器设置教程中所述。
导航基本时间指令
要查看服务器上的时间,您将使用命令日期
。任何用户都可以运行此命令来打印日期和时间:
1date
通常,您的服务器将生成一个输出,默认时区为 UTC。
1[secondary_label Output]
2Thu Aug 5 15:55:20 UTC 2021
UTC 是 Coordinated Universal Time,即零度长度的时间,虽然这可能不反映当前的时区,但使用 Universal Time 可以防止在基础设施跨越多个时区时出现混淆。
但是,如果您想要更改时区,您可以使用timedatectl
命令。
首先,运行此命令来生成可用的时区列表:
1timedatectl list-timezones
一个时区列表将打印到你的屏幕上。你可以按SPACE
按下页面,然后按b
按上页面.一旦你找到正确的时区,请记住它,然后键入q
离开列表。
接下来,您可以将时区设置为timedatectl set-timezone
,将突出的部分替换为您在列表中发现的时区,您需要使用sudo
和timedatectl
来进行此更改:
1sudo timedatectl set-timezone America/New_York
您可以通过再次运行日期
来验证您的更改:
1date
1[secondary_label Output]
2Thu Aug 5 11:56:01 EDT 2021
时区缩写将反映新选择的值。
现在你已经练习了检查时钟和设置时区,你可以确认你的时间在下一节正确同步。
用timedatectl
控制timesyncd
此前,大多数网络时间同步是由网络时间协议daemon_或ntpd
处理的,该服务连接到一大堆其他NTP服务器,为其提供持续和准确的时间更新。
但是现在有了Ubuntu的默认安装,你可以使用timesyncd
而不是ntpd
。timesyncd
通过连接到相同的时间服务器来做同样的事情,但它很轻,在Ubuntu上更紧密地与systemd
集成。
您可以通过运行没有参数的timedatectl
来查询timesyncd
的状态. 在这种情况下,您不需要使用sudo
:
1timedatectl
1[secondary_label Output]
2
3 Local time: Thu 2021-08-05 11:56:40 EDT
4 Universal time: Thu 2021-08-05 15:56:40 UTC
5 RTC time: Thu 2021-08-05 15:56:41
6 Time zone: America/New_York (EDT, -0400)
7System clock synchronized: yes
8 NTP service: active
9 RTC in local TZ: no
此命令打印了本地时间、通用时间(如果您没有从 UTC 时区切换,可能与本地时间相同),以及某些网络时间状态信息。
如果您的输出显示 NTP 服务不活跃,请用timedatectl
打开它:
1sudo timedatectl set-ntp on
在此之后,再次运行timedatectl
以确认网络时间状态. 同步可能需要一分钟,但最终系统时钟同步:
将读取是
和NTP服务:
将显示为活跃
。
切换到NTPD
「timesyncd」将在大多数情况下工作,但有些情况下,应用程序可能会对时间的任何干扰敏感,在这种情况下,「ntpd」是您可以使用的替代网络时间服务。
在安装ntpd
之前,您需要关闭timesyncd
,以防止两种服务相互冲突,您可以通过下面的命令禁用网络时间同步来完成此操作:
1sudo timedatectl set-ntp no
检查时间同步是否禁用:
1timedatectl
检查您的输出是否读懂NTP服务:不活跃
。这意味着timesyncd
已停止,现在您已经准备好安装ntp
包与apt
。
首先,运行apt update
来更新本地包索引:
1sudo apt update
然后,运行apt install ntp
来安装此包:
1sudo apt install ntp
安装完成后,ntpd 会自动启动,您可以通过查询ntpd
来验证所有情况:
1ntpq -p
1[secondary_label Output]
2 remote refid st t when poll reach delay offset jitter
3==============================================================================
4 0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
5 1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
6 2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
7 3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
8 ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
9+t1.time.bf1.yah 129.6.15.28 2 u 16 64 1 61.766 -20.068 1.964
10+puppet.kenyonra 80.72.67.48 3 u 16 64 1 2.622 -18.407 2.407
11*ntp3.your.org .GPS. 1 u 15 64 1 50.303 -17.499 2.708
12+time.cloudflare 10.4.1.175 3 u 15 64 1 1.488 -18.295 2.670
13+mis.wci.com 216.218.254.202 2 u 15 64 1 21.527 -18.377 2.414
14+ipv4.ntp1.rbaum 69.89.207.99 2 u 12 64 1 49.741 -17.897 3.417
15+time.cloudflare 10.4.1.175 3 u 15 64 1 1.039 -16.692 3.378
16+108.61.73.243 129.6.15.29 2 u 14 64 1 70.060 -16.993 3.363
17+ny-time.gofile. 129.6.15.28 2 u 21 64 1 75.349 -18.333 2.763
18 golem.canonical 17.253.34.123 2 u 28 64 1 134.482 -21.655 0.000
19 ntp3.junkemailf 216.218.254.202 2 u 19 64 1 2.632 -16.330 4.387
20 clock.xmission. .XMIS. 1 u 18 64 1 24.927 -16.712 3.415
21 alphyn.canonica 142.3.100.2 2 u 26 64 1 73.612 -19.371 0.000
22 strongbad.voice 192.5.41.209 2 u 17 64 1 70.766 -18.159 3.481
23 chilipepper.can 17.253.34.123 2 u 25 64 1 134.982 -19.848 0.000
24 pugot.canonical 145.238.203.14 2 u 28 64 1 135.694 -21.075 0.000
ntpq
是ntpd
的查询工具。-p
旗要求有关ntpd
所连接的NTP服务器(或 peers)的信息。您的输出将略有不同,但会列出默认的Ubuntu池服务器以及其他一些。
结论
在本文中,您已经成功查看了系统时间,更改了时区,使用了Ubuntu的默认timesyncd
服务,并安装了ntpd
。