centos7系统时间管理timedatectl
在CentOS 6中,系统时间管理的操作如下:
- 显示和设置系统时间会用date命令
- 修改时区需要找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/localtime
- 时间同步需要安装ntpdate
从CentOS 7开始,关于时间管理的指令除了保留了之前版本中常用到的date、hwclock等命令外,还增加了一个统一的新命令timedatactl,作为systemd系统和服务管理器的一部分(*ctl风格)
可以使用timedatectl命令来设置或更改当前的日期,时间和时区,或实现与远程NTP服务器的自动系统时钟同步。
读取时间:timedatectl(等同于 timedatectl status)
timdatectl显示出来的信息,比date要丰富很多。有本地时间,UTC时间,RTC时间(硬件时间),还有时区,NTP同步等信息。
[root@master ~]# timedatectl Local time: Sat 2021-05-08 16:13:13 CST //当地时间 Universal time: Sat 2021-05-08 08:13:13 UTC //伦敦时间 RTC time: Sat 2021-05-08 08:13:13 //硬件时间 Time zone: Asia/Shanghai (CST, +0800) //时区:亚洲上海(东8区)UTC时间加上8等于当前时间 NTP enabled: yes //表示开启时间同步 NTP synchronized: yes //表示时间已同步,ntp服务正常运行 RTC in local TZ: no DST active: n/a
设置日期与时间:timedatectl set-time "YYYY-MM-DD HH:MM:SS"
日期: [root@master ~]# timedatectl set-time 2019-06-22 时间: [root@master ~]# timedatectl set-time "20:45:00" 日期时间: [root@master ~]# timedatectl set-time "2019-03-11 20:45:00"
列出所有时区:timedatectl list-timezones
这个命令的显示很长,如果是寻找时区的名称,可以通过管道给grep过滤:
[root@master ~]# timedatectl list-timezones | grep Shang Asia/Shanghai
或者这样:
[root@master ~]# timedatectl list-timezones | grep -o "Asia/S.*" Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk
设置时区:timedatectl set-timezone Asia/Shanghai
设置同步NTP时间:timedatectl set-ntp true
设置与NTP服务同步的前提是系统上安装了NTP或者Chrony,否则会出现错误 Failed to set ntp: NTP not supported.
安装NTP,可直接采用 yum installl ntp 即可
当设置timedatectl set-ntp true ,显示 NTP enabled: yes
[root@master ~]# timedatectl set-ntp true [root@master ~]# timedatectl Local time: Sat 2021-05-08 17:18:36 CST Universal time: Sat 2021-05-08 09:18:36 UTC RTC time: Mon 2019-03-11 12:52:53 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: n/a
需要过一段时间,才会显示 NTP synchronized: yes(不想等待的话,重启ntp服务)
[root@master ~]# timedatectl Local time: Sat 2021-05-08 17:32:46 CST Universal time: Sat 2021-05-08 09:32:46 UTC RTC time: Sat 2021-05-08 09:32:46 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
注意:设置了NTP自动同步后,手动设置时间命令将不生效,会出现Failed to set time: Automatic time synchronization is enabled
[root@master ~]# timedatectl set-time 2021-01-01 Failed to set time: Automatic time synchronization is enabled