Linux系统上,因为在Linux中的大多数任务都是由时间来控制的。通过使用来自于终端使用timedatectl命令的NTP,设置date、time、timezone和synchronize time来管理时间。原来一直不知道这个命令。都是用clock date等命令。真是难记而且复杂了。现在又了timedatectl,一目了然,很方便。
timedatectl是systemd的一部分,systemd是一个linux系统基础组件的一个集合,主要用来操作系统日期和时间。
几个时钟的定义:
real-time clock RTC 实时时钟
指定的是硬件时钟,一般是主板上的特殊电路,专用用于记录时候,有电池供电,不受服务器的开启关闭,操作系统的关闭开启影响。
系统时钟
操作系统内部的时钟,初始值来自于实时时钟,由内核维护,系统启动之后和RTC就没有关系。
Coordinated Universal Time (UTC) 国际统一时钟
系统时间永远是UTC,在应用程序使用的时候转换为本地时间,本地时间实际就是自己的时区,包括夏令时,RTC实战可以是UTC会在本地时间,一般UTC是被支持的方式。
1.要显示系统的当前时间和日期,使用命令行中的timedatectl命令,如下:
# timedatectl status
在上面的示例中,RTC time就是硬件时钟的时间。
2.Linux系统上的time总是通过系统上的timezone设置的,要查看当前时区,按如下做:
# timedatectl OR# timedatectl | grep Time
3.要查看所有可用的时区,运行以下命令:
# timedatectl list-timezones [root@platform ~]# timedatectl list-timezones Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau Africa/Blantyre Africa/Brazzaville Africa/Bujumbura Africa/Cairo Africa/Casablanca Africa/Ceuta Africa/Conakry Africa/Dakar Africa/Dar_es_Salaam Africa/Djibouti Africa/Douala Africa/El_Aaiun Africa/Freetown Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Juba Africa/Kampala Africa/Khartoum Africa/Kigali lines 1-29
4.要根据地理位置找到本地的时区,运行以下命令:
# timedatectl list-timezones | egrep -o “Asia/B.*” # timedatectl list-timezones | egrep -o “Europe/L.*” # timedatectl list-timezones | egrep -o “America/N.*”
5.要在Linux中设置本地时区,使用set-timezone开关,如下所示。
# timedatectl set-timezone “Asia/Kolkata”
推荐使用和设置协调世界时,即UTC。
# timedatectl set-timezone UTC
你需要输入正确命名的时区,否者在你改变时区的时候,可能会发生错误。在下面的例子中,由于 “Asia/Kalkata” 这个时区是不正确的,因此导致了错误。
如何在Linux中设置时间和日期
6.你可以使用timedatectl命令,设置系统上的日期和时间,如下所示:
设置Linux中的时间
只设置时间的话,我们可以使用set-time开关以及HH:MM:SS(小时,分,秒)的时间格式。
# timedatectl set-time 15:58:30
在Linux中设置日期
7.只设置日期的话,我们可以使用set-time开关以及YY:MM:DD(年,月,日)的日期格式。
# timedatectl set-time 20151120
8.设置日期和时间:
# timedatectl set-time '16:10:40 2015-11-20'
如何在Linux中查找和设置硬件时钟
9.要设置硬件时钟以协调世界时,UTC,可以使用 set-local-rtc boolean-value选项,如下所示:
首先确定你的硬件时钟是否设置为本地时区:
# timedatectl | grep local
将你的硬件时钟设置为本地时区:
# timedatectl set-local-rtc 1
将你的硬件时钟设置为协调世界时(UTC):
# timedatectl set-local-rtc 0
将Linux系统时钟同步到远程NTP服务器
NTP即Network Time Protocol(网络时间协议),是一个互联网协议,用于同步计算机之间的系统时钟。timedatectl实用程序可以自动同步你的Linux系统时钟到使用NTP的远程服务器。
注意,你必须在系统上安装NTP以实现与NTP服务器的自动时间同步。
要开始自动时间同步到远程NTP服务器,在终端键入以下命令。
# timedatectl set-ntp true
要禁用NTP时间同步,在终端键入以下命令。
# timedatectl set-ntp false