如何在 Ubuntu 20.04 上设置时间同步

介绍

准确的时间安排是现代软件部署不可或缺的组成部分。如果没有它,您可能会遇到数据损坏、错误和其他难以调试的问题。时间同步可帮助确保您的日志以正确的顺序记录,并适当地应用数据库更新。

幸运的是,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,将突出的部分替换为您在列表中发现的时区,您需要使用sudotimedatectl来进行此更改:

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而不是ntpdtimesyncd通过连接到相同的时间服务器来做同样的事情,但它很轻,在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

ntpqntpd的查询工具。-p旗要求有关ntpd所连接的NTP服务器(或 peers)的信息。您的输出将略有不同,但会列出默认的Ubuntu池服务器以及其他一些。

结论

在本文中,您已经成功查看了系统时间,更改了时区,使用了Ubuntu的默认timesyncd服务,并安装了ntpd

Published At
Categories with 技术
comments powered by Disqus