前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 18.04上设置时间同步

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

原创
作者头像
朝朝
修改2018-10-23 09:54:46
18.3K0
修改2018-10-23 09:54:46
举报

介绍

准确的计时已成为现代软件部署的关键组成部分。无论是确保以正确的顺序记录日志还是正确应用数据库更新,不同步的时间都可能导致错误,数据损坏和其他难以调试的问题。

Ubuntu 18.04内置了时间同步,默认情况下使用systemd的timesyncd服务激活。在本文中,我们将介绍一些与时间相关的基本命令,验证timesyncd是否处于活动状态,并了解如何安装备用网络时间服务。

准备

在开始本教程之前,您将需要一个Ubuntu 18.04服务器,该服务器具有sudo权限的非root用户。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

导航基本时间命令

查找服务器上时间的最基本命令是date。任何用户都可以输入此命令来打印日期和时间:

代码语言:javascript
复制
date
代码语言:javascript
复制
Tue Jul 10 14:48:52 UTC 2018

大多数情况下,您的服务器将默认为UTC时区,如上面的输出所示。UTC是世界协调时间,经度为零度的时间。当您的基础架构跨越多个时区时,始终如一地使用通用时间可以减少混淆。

如果您有不同的要求并需要更改时区,则可以使用该timedatectl命令执行此操作。

首先,列出可用的时区:

代码语言:javascript
复制
timedatectl list-timezones

时区列表将打印到您的屏幕。您可以按SPACE向下翻页,按b向上翻页。找到正确的时区后,记下它,然后键入q以退出列表。

现在用timedatectl set-timezone设置时区,确保将下面突出显示的部分替换为您在列表中找到的时区。你需要使用timedatectlsudo来进行更改:

代码语言:javascript
复制
sudo timedatectl set-timezone America/New_York

您可以再次运行date来验证更改:

代码语言:javascript
复制
date
代码语言:javascript
复制
Tue Jul 10 10:50:53 EDT 2018

时区缩写应反映新选择的值。

现在我们知道如何检查时钟和设置时区,让我们确保我们的时间正确同步。

使用timedatectl控制时间同步

直到最近,大多数网络时间同步都由网络时间协议守护程序或ntpd处理。此服务连接到其他NTP服务器池,为其提供持续且准确的时间更新。

Ubuntu的默认安装现在使用timesyncd而不是ntpd。timesyncd连接到相同的时间服务器,并以大致相同的方式工作,但更轻量级,更集成systemd和Ubuntu的低级别工作。

我们可以通过不带参数运行timedatectl来查询timesyncd的状态。在这种情况下你不需要使用sudo权限:

代码语言:javascript
复制
timedatectl
代码语言:javascript
复制
Local time: Tue 2018-07-10 10:54:12 EDT
                  Universal time: Tue 2018-07-10 14:54:12 UTC
                        RTC time: Tue 2018-07-10 14:54:12
                       Time zone: America/New_York (EDT, -0400)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

这将打印出本地时间,通用时间(如果您没有从UTC时区切换,可能与本地时间相同),以及一些网络时间状态信息。 System clock synchronized: yes表示时间已成功同步,systemd-timesyncd.service active: yes表示已启用并运行timesyncd。

如果timesyncd未激活,请使用timedatectl将其打开:

代码语言:javascript
复制
sudo timedatectl set-ntp on

再次运行timedatectl以确认网络时间状态。这可能需要为实际同步发生的一分钟,但最终都Network time on:NTP synchronized:都应该为yes

切换到ntpd

尽管时间同步对于大多数目的来说都很好,但是对于即使是最轻微的时间扰动非常敏感的一些应用程序也可以通过ntpd更好地服务,因为它使用更复杂的技术来不断地逐步保持系统时间的正常运行。

在安装ntpd之前,我们应该关闭timesyncd:

代码语言:javascript
复制
sudo timedatectl set-ntp no

验证timesyncd是否已关闭:

代码语言:javascript
复制
timedatectl

在输出中查找systemd-timesyncd.service active: no。这意味着timesyncd已经停止。我们现在可以用apt安装ntp包:

代码语言:javascript
复制
sudo apt update
sudo apt install ntp

ntpd将在安装后自动启动。您可以在ntpd中查询状态信息,以验证一切正常:

代码语言:javascript
复制
ntpq -p
代码语言:javascript
复制
     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
+ntp-3.jonlight. 127.67.113.92    2 u    8   64    1   64.253    2.645   3.174
 2001:67c:1560:8 145.238.203.14   2 u   22   64    1   71.155   -1.059   0.000
+test.diarizer.c 216.239.35.4     2 u   11   64    1   64.378    4.648   3.244
 2001:67c:1560:8 145.238.203.14   2 u   18   64    1   70.744   -0.964   0.000
 alphyn.canonica 132.246.11.231   2 u   17   64    1    7.973   -0.170   0.000
+vps5.ctyme.com  216.218.254.202  2 u   10   64    1   65.874    1.902   2.608

ntpq是ntpd的查询工具。该-p标志要求提供关于所述NTP服务器(或信息p EERS)NTPD已连接到。您的输出会略有不同,但应列出默认的Ubuntu池服务器以及其他一些服务器。请记住,ntpd建立连接可能需要几分钟时间。

结论

在本文中,我们展示了如何查看系统时间,更改时区,使用Ubuntu的默认时间同步以及安装ntpd。如果您有比我们在此处所述的更复杂的计时需求,您可以参考官方的NTP文档,还可以查看NTP池项目,这是一个全球性的志愿者团队,提供世界上大部分的NTP基础设施。

想要了解更多关于设置时间同步的相关教程,请前往腾讯云+社区学习更多知识。


参考文献:《How To Set Up Time Synchronization on Ubuntu 18.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 导航基本时间命令
  • 使用timedatectl控制时间同步
  • 切换到ntpd
  • 结论
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档