timedatectl命令是一个比较新的时间管理工具,它作为systemd系统和服务管理器的一部分(*ctl风格),用来代替旧的传统的用在基于Linux分布式系统的sysvinit守护进程的date命令。timedatectl命令可以查询和更改系统时钟和设置,你可以使用此命令来设置或更改当前的日期,时间和时区,或实现与远程NTP服务器的自动系统时钟同步。

显示系统时间信息

$ timedatectl

Local time: Sat 2019-08-17 17:34:00 CST

Universal time: Sat 2019-08-17 09:34:00 UTC

RTC time: Sat 2019-08-17 09:34:00

Time zone: Asia/Shanghai (CST, +0800)

NTP enabled: yes

NTP synchronized: no

RTC in local TZ: no

DST active: n/a

$ timdatectl status

加上status参数,显示完全一样。

timdatectl显示出来的信息,比date要丰富很多。有本地时间,UTC时间,RTC时间(硬件时间),还有时区,NTP同步等信息。

查看所有可用时区

$ timedatectl list-timezones

这个命令的显示很长,如果是寻找时区的名称,可以通过管道给grep过滤:

$ timedatectl list-timezones | grep Shang

Asia/Shanghai

或者这样:

$ timedatectl list-timezones | grep -o "Asia/S.*"

Asia/Sakhalin

Asia/Samarkand

Asia/Seoul

Asia/Shanghai

Asia/Singapore

Asia/Srednekolymsk

设置服务器的时区

$ timedatectl set-timezone "Asia/Shanghai"

设置系统日期和时间

$ timedatectl set-time HH:MM:SS

HH:MM:SS 就是小时,分,秒的时间格式。

$ timedatectl set-time '16:10:40 2015-11-20'

设置系统日期为2015年11月20日,时间为下午16点10分40秒。

设置同步NTP时间

$ timedatectl set-ntp true

取消NTP时间同步,就是 timedatectl set-ntp false。NTP时间同步进程要单独安装,请参考:在CentOS系统中设置NTP时间同步

一个有点诡异的现象:我在CentOS系统上的使用经验是这样的,每当我输入timedatectl set-ntp true,ntpd进程就挂掉了,必须要再将ntpd进程重新启动起来(sudo service ntpd start)。

我们可以这样来检查NTP同步的设置是否成功:

$ timedatectl

Local time: Sat 2019-08-17 17:55:41 CST

Universal time: Sat 2019-08-17 09:55:41 UTC

RTC time: Sat 2019-08-17 09:55:41

Time zone: Asia/Shanghai (CST, +0800)

NTP enabled: yes

NTP synchronized: yes

RTC in local TZ: no

DST active: n/a

要看到两个yes才行。NTP enabled:yes表示 timedatectl set-ntp true,NTP synchronized:yes表示ntpd进程正在正常运行。

以上就是关于Linux系统下timedatectl命令的介绍。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐