UbuntuLinux使用timedatectl校正时间、时区教程与范例

介绍如何在 Ubuntu Linux 中使用 timedatectl 透过网络 NTP 或手动校正系统时间。

timedatectl 时间管理工具

timedatectl 是一个 Ubuntu Linux 默认的系统时间管理工具,支持网络校时与手动校时。直接执行该指令,可以显示目前的设置状态:

# 显示目前状态
timedatectl
                      Local time: Mon 2020-04-06 18:11:32 CST
                  Universal time: Mon 2020-04-06 10:11:32 UTC
                        RTC time: Mon 2020-04-06 10:11:33
                       Time zone: Asia/Taipei (CST, +0800)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

网络校时

timedatectlset-ntp 功能可以设置让系统自动透过网络校时(NTP):

# 激活 NTP 校时
timedatectl set-ntp yes

正常来说,Ubuntu Linux 默认就会打开网络校时功能。

timedatectl 的网络校时功能是透过 systemd-timesyncd 服务来处理的,在激活网络校时之后,该服务就会自动启动,我们可以用以下指令检查 systemd-timesyncd 服务的状态:

# 检查 systemd-timesyncd 服务状态
systemctl status systemd-timesyncd
● systemd-timesyncd.service - Network Time Synchronization
   Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendo
   Active: active (running) since Mon 2020-04-06 18:35:20 CST; 23min ago
     Docs: man:systemd-timesyncd.service(8)
 Main PID: 5162 (systemd-timesyn)
   Status: "Synchronized to time server 91.189.89.198:123 (ntp.ubuntu.com)."
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/systemd-timesyncd.service
           └─5162 /lib/systemd/systemd-timesyncd

若要关闭自动网络校时,则执行:

# 停用 NTP 校时
timedatectl set-ntp no

手动校时

如果在没有网络的状态下,要以手动输入时间的方式校正系统时间,可以使用 timedatectlset-time 功能来设置日期与时间:

# 手动校时
timedatectl set-time "2020-04-06 18:17:16"

查找时区设置

有时候服务器的时区设置错误,也会造成时间的错乱,最常见的问题提就是刚安装好的服务器没有进行时区的设置,使用默认的 UTC 时区,这时候系统的时间就会跟本地时间差很多。

时区设置可以从 timedatectl 指令的输出中查看,若设置成 UTC 时区的话,Time zone 会显示为 UTC,类似这样:

# 显示目前时区设置
timedatectl
               Local time: Thu 2021-10-07 07:06:21 UTC
           Universal time: Thu 2021-10-07 07:06:21 UTC
                 RTC time: Thu 2021-10-07 07:06:21    
                Time zone: Etc/UTC (UTC, +0000)       
System clock synchronized: yes                        
              NTP service: active                     
          RTC in local TZ: no

系统的时区设置是透过 /etc/localtime 这个文件来设置的,我们也可以透过这个文件来查看时区设置:

# 查看系统时区设置文件
ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Oct  7 06:17 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

另外系统的时区信息也会写在 /etc/timezone 这个文件中:

# 查看系统时区设置
cat /etc/timezone
Etc/UTC

更改时区设置

若要更改时区设置,首先要查找系统上可用的时区选项:

# 查找系统时区设置选项
timedatectl list-timezones

由于选项很多,可以搭配 grep 查找自己的城市:

# 查找系统时区设置选项
timedatectl list-timezones | grep Taipei
Asia/Taipei

查到自己的时区信息之后,再以 timedatectl 更改系统的时区设置:

# 更改系统时区设置
sudo timedatectl set-timezone Asia/Taipei

最后再确认一下系统时区信息:

# 显示目前时区设置
timedatectl
               Local time: Thu 2021-10-07 15:19:26 CST
           Universal time: Thu 2021-10-07 07:19:26 UTC
                 RTC time: Thu 2021-10-07 07:19:26    
                Time zone: Asia/Taipei (CST, +0800)   
System clock synchronized: yes                        
              NTP service: active                     
          RTC in local TZ: no
技术教程

Python以PyCryptodome实作RSA非对称式加密方法教程与范例

2022-6-19 6:39:55

技术教程

Certbot删除Let’sEncrypt颁发的网域SSL凭证教程与范例

2022-6-19 11:42:16



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 yp10086@vip.qq.com 举报,一经查实,本站将立刻删除。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索