timedatectl 是systemd系统和服务管理器一部分,基于sysvinit守护进程的linux发行版中使用就传统日期命令。timedatectl 允许查询和更改系统时钟配置及其设置,可以使用此命令设置或更改当前日期、时间和时区或启用与远程NTP服务器自动系统时钟同步。
Linux中保证系统上保持正确时间有较大好处,因为linux大部分任务都是由时间控制,所以需要保持系统任务运行更及时,有利于记录事件和系统其他信息的正确时间等。
显示linux系统当前时间和日期:
# timedatectl status
Linux上时间始终通过系统上设置的时区进行管理,查看当前时区:
# timedatectl
或
# timedatectl | grep Time
查看所以可用时区:
# timedatectl list-timezones
根据所在位置查找本地时区:
# timedatectl list-timezones | egrep -o "Asia/B.*"
# timedatectl list-timezones | egrep -o "Europe/L.*"
# timedatectl list-timezones | egrep -o "America/N.*"
在linux中设置本地时区,可以使用set-timezone开关:
# timedatectl set-timezone "Asia/Kolkata"
始终建议使用和设置协调世界时 ( UTC)。
# timedatectl set-timezone UTC
需要输入正确的名称时区,否则在更改时区时可能会出现错误。仅设置时间,我们可以使用设置时间开关以及HH:MM:SS(小时、分钟和秒)的时间格式。
# timedatectl set-time 15:58:30
如上所示设置日期时,可能会收到以下错误:
Failed to set time: NTP unit is active
错误表面NTP服务器处于活跃状态,需要使用命令将其禁用:
#systemctl disable--now chronyd
要设置日期和时间,我们可以使用设置时间开关以及YY:MM:DD(年、月、日)的日期格式和HH:MM:SS(时、分、秒)的时间格式。
# timedatectl set-time '2015-11-20 16:14:50'
将硬件时钟设置为协调世界时UTC,请使用set-local-rtc boolean-value。检查你的硬件时钟是否设置为本地时区:
# timedatectl | grep local
将硬件时钟设置为当地时区:
# timedatectl set-local-rtc 1
将硬件时钟设置为协调世界时 (UTC):
# timedatectl set-local-rtc 0
把Linux 系统时钟与远程 NTP 服务器同步。NTP是网络时间协议,属于互联网协议,可同步服务器之间系统时间。
timedatectl实用程序可让您使用 NTP 自动将 Linux 系统时钟与远程服务器组同步。注意必须在系统上安装NTP才能启用与 NTP 服务器的自动时间同步。要启动与远程 NTP 服务器的自动时间同步,请在终端上输入以下命令。
# timedatectl set-ntp true
禁用 NTP 时间同步,请在终端输入以下命令。
# timedatectl set-ntp false
如果需要了解更多关于内容也可以继续阅读timedatectl手册页。