Centos7:timedatectl命令
Centos7中增加了timedate命令来时间对日期、时间和时区的控制。
[root@node1 ~]# timedatectl --help
timedatectl [OPTIONS...] COMMAND ...
Query or change system time and date settings.
-h --help Show this help message
--version Show package version
--no-pager Do not pipe output into a pager
--no-ask-password Do not prompt for password
-H --host=[USER@]HOST Operate on remote host
-M --machine=CONTAINER Operate on local container
--adjust-system-clock Adjust system clock when changing local RTC mode
Commands:
status Show current time settings
set-time TIME Set system time
set-timezone ZONE Set system time zone
list-timezones Show known time zones
set-local-rtc BOOL Control whether RTC is in local time
set-ntp BOOL Control whether NTP is enabled
一、显示日期、时间、时区等相关信息
[root@node1 ~]# timedatectl
Local time: 日 2016-04-17 00:20:06 CST
Universal time: 六 2016-04-16 16:20:06 UTC
RTC time: 六 2016-04-16 16:20:06
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
二、修改时间
执行如下命令修改时间:
timedatectl set-time HH:MM:SS
备注:同时修改hardware clock和system clock.
例子:
[root@node1 ~]# timedatectl set-time 09:57:30
[root@node1 ~]# date
2016年 04月 17日 星期日 09:57:32 CST
三、修改日期
执行如下命令修改日期:
timedatectl set-time YYYY-MM-DD
备注:修改日志不同时修改时间,将重置现在的时间为00:00:00.
例子:
[root@node1 ~]# timedatectl set-time 2016-04-18
[root@node1 ~]# date
2016年 04月 18日 星期一 00:00:01 CST
四、同时修改日期和时间
执行如下命令同时修改日期和时间:
timedatectl set-time 'YYYY-MM-DD HH:MM:SS'
例子:
[root@node1 ~]# timedatectl set-time '2016-04-18 10:01:20'
[root@node1 ~]# date
2016年 04月 18日 星期一 10:01:21 CST
五、修改时区
执行如下命令显示可用的时区:
timedatectl list-timezones
[root@node1 ~]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
...
执行如下命令设置使用的时区:
timedatectl set-timezone time_zone
[root@node1 ~]# timedatectl set-timezone Asia/Shanghai
[root@node1 ~]# date
2016年 04月 18日 星期一 10:05:28 CST
[root@node1 ~]# ls -lrt /etc/localtime
lrwxrwxrwx 1 root root 35 4月 17 00:08 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
六、同步时间到一个远程服务器
timedatectl命令可以用来控制是否开启NTP,开启NTP将启动chronyd或者ntpd服务,依赖于被安装的那个。
timedatectl set-ntp boolean
开启:timedatectl set-ntp yes
关闭:timedatectl set-ntp no
备注:
- 执行set-ntp时会同时开启或关闭ntpd或者chronyd服务。但是ntpd服务和chronyd可以通过systemctl命令来单独控制,不是必须使用timedatectl来进行控制。
- 如果使用set-ntp是yes的状态(即:timedatectl命令中NTP enabled状态显示为yes,那么将不能同时使用set-time来修改时间。
[root@node3 ~]# timedatectl
Local time: 一 2016-04-18 10:25:48 CST
Universal time: 一 2016-04-18 02:25:48 UTC
RTC time: 六 2016-04-16 17:09:34
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
[root@node3 ~]# timedatectl set-time '2016-04-18 10:25:58'
Failed to set time: Automatic time synchronization is enabled
[root@node3 ~]# timedatectl set-ntp no
[root@node3 ~]# timedatectl
Local time: 一 2016-04-18 10:26:16 CST
Universal time: 一 2016-04-18 02:26:16 UTC
RTC time: 六 2016-04-16 17:10:02
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
[root@node3 ~]# timedatectl set-time '2016-04-18 10:26:28'
要是用root哦
- 查看系统时间
[root@localhost ~]# date
Tue Jun 13 10:20:13 CST 2017
- 查看硬件时间
[root@localhost ~]# hwclock --show
Tue 13 Jun 2017 02:11:12 AM CST -0.848845 seconds
可以看出系统时间比硬件时间快,系统时间是准确的
假如系统时间和硬件时间都不准确
- 更新系统年月日
[root@localhost ~]# timedatectl set-time 2017-06-13
- 更新系统时分秒
[root@localhost ~]# timedatectl set-time 10:25:17
- 更新时区(亚洲-中国-上海)
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
- 将硬件时钟调整为与系统时钟一致
[root@localhost ~]# timedatectl set-local-rtc 1
或者
[root@localhost ~]# hwclock --systohc --localtime
- 将日期写入CMOS
[root@localhost ~]# clock –w
再次查看系统时间和硬件时间,他们就一致了
设置Linux的时钟
在 Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。由于目前绝大多数用户使用x86硬件体系,所以可以视这两个命令为一个命令来学习。
1.在虚拟终端中使用date命令来查看和设置系统时间
查看系统时钟的操作:
# date
设置系统时钟的操作:
# date
091713272003.30
通用的设置格式:
# date 月日时分年.秒
2.使用hwclock或clock命令查看和设置硬件时钟
查看硬件时钟的操作:
# hwclock
--show 或
# clock
--show
2003年09月17日 星期三 13时24分11秒 -0.482735 seconds
设置硬件时钟的操作:
# hwclock
--set --date="09/17/2003 13:26:00"
或者
# clock --set
--date="09/17/2003 13:26:00"
通用的设置格式:hwclock/clock
--set --date=“月/日/年 时:分:秒”。
3.同步系统时钟和硬件时钟
Linux系统(笔者使用的是Red Hat 8.0,其它系统没有做过实验)默认重启后,硬件时钟和系统时钟同步。如果不大方便重新启动的话(服务器通常很少重启),使用clock或hwclock命令来同步系统时钟和硬件时钟。
硬件时钟与系统时钟同步:
# hwclock
--hctosys
或者
# clock
--hctosys
上面命令中,--hctosys表示Hardware Clock to SYStem clock。
系统时钟和硬件时钟同步:
# hwclock
--systohc
或者
# clock
--systohc
使用图形化系统设置工具设置时间
对于初学者来,笔者推荐使用图形化的时钟设置工具,如Red Hat 8.0中的日期与时间设置工具,可以在虚拟终端中键“redhat-config-time”命令,或者选择“K选单/系统设置/日期与时间”来启动日期时间设置工具。使用该工具不必考虑系统时间和硬件时间,只需从该对话框中设置日期时间,可同时设置、修改系统时钟和硬件时钟。
Internet同步时钟设置
在Windows XP日期与时间设置中有一项与Internet同步的功能,有了这项功能只要上网便可得到十分准确的时间。Red Hat 8.0也提供了这样的功能,在日期与时间设置工具对话框中的下部,有一个“启用网络时间协议”的选项,将该项选中就可以使用网络时间协议来同步Linux 系统时钟。选中该项后,其下面的服务器下拉列表框就变为可用状态,可从中选择一个时间服务器作为远程时间服务器。然后单击确定按钮,便可连接所设定的时间服务器,并与之同步时间。