目錄
紅帽企業版 7 版本提供了三種命令行工具用於設置和展示系統的日期和時間,它們分別是timedatectl、date和hwclock,本篇對其分別介紹。
1 TIMEDATECTL命令
該命令是作為systemd系統和服務管理器的一部分分發的工具,可以用它來查看和更改系統時鍾的配置,包括更改當前的日期和時間、設置時區以及可以激活與遠端服務器系統時鍾的自動同步,是紅帽企業版 7 版本新增的命令。
1.1 展示當前日期和時間
可以使用timedatectl命令來展示當前日期和時間,並且有系統和硬件時鍾的配置的詳細信息。
[root@strong ~]# timedatectl
Local time: Sat 2019-09-21 15:02:27 CST
Universal time: Sat 2019-09-21 07:02:27 UTC
RTC time: Sat 2019-09-21 07:02:27
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
1.2 更改當前時間
更改當前時間,命令格式為:timedatectl set-time HH:MI:SS。
該命令同時更改系統時間和硬件時鍾,執行結果與使用命令date --set 和hwclock --systohc的效果相同。
[root@strong ~]# timedatectl set-time 20:00:00
[root@strong ~]# timedatectl
Local time: Sat 2019-09-21 20:00:04 CST
Universal time: Sat 2019-09-21 12:00:04 UTC
RTC time: Sat 2019-09-21 12:00:05
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
1. 3 更改當前日期
更改當前日期,命令格式為:timedatectl set-time YYYY-MM-DD。
[root@strong ~]# timedatectl set-time 2019-09-15
[root@strong ~]# timedatectl
Local time: Sun 2019-09-15 00:00:03 CST
Universal time: Sat 2019-09-14 16:00:03 UTC
RTC time: Sat 2019-09-14 16:00:03
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
僅僅更改日期,時間會變為00:00:00,故更改日期時需把對應的時間加上,例如:timedatectl set-time "2019-09-21 15:16:00"。
1.4 更改時區
1.4.1 列出所有時區
[root@strong ~]# timedatectl list-timezones
1.4.2 更改時區
[root@strong ~]# timedatectl set-timezone Asia/Shanghai
2 DATE命令
該命令在所有Linux系統都可用,用於設置和查看當前日期和時間,常用於腳本中以格式化的形式用於展示系統時間的詳細信息。
2.1 展示當前日期和時間
1)不帶任何格式展示
[root@strong ~]# date
Sat Sep 21 15:24:57 CST 2019
默認展示的是本地時間,以UTC的方式展示,需使用date --utc或date -u。
[root@strong ~]# date --utc
Sat Sep 21 07:25:50 UTC 2019
2)格式化展示
客制化日期和時間的展示格式,使用命令:date +"格式"。
常用的格式為:
控制格式 |
描述 |
%H |
以HH格式展示小時; |
%M |
以MM格式展示分鍾; |
%S |
以SS格式展示秒; |
%d |
以DD格式展示天數; |
%m |
以MM格式展示月; |
%Y |
以YYYY格式展示年; |
%Z |
時區; |
%F |
以YYYY-MM-DD格式展示日期,和%Y-%m-%d等價; |
%T |
以HH:MM:SS格式展示時間,和%H:%M:%S等價; |
[root@strong ~]# date
Sat Sep 21 15:37:18 CST 2019
[root@strong ~]# date +"%Y-%m-%d %H:%M:%S"
2019-09-21 15:38:00
2.2 更改當前時間
更改當前時間,命令格式為:date --set HH:MM:SS。
[root@strong ~]# date --set 15:40:20
Sat Sep 21 15:40:20 CST 2019
2.3 更改當前日期
更改當前日期,命令格式為:date --set YYYY-MM-DD。
[root@strong ~]# date --set 2019-09-25
Wed Sep 25 00:00:00 CST 2019
僅僅更改日期,時間會變為00:00:00,故更改日期時需把對應的時間加上,例如:
[root@strong ~]# date --set "2019-09-21 15:42:35"
Sat Sep 21 15:42:35 CST 2019。
3 CLOCK命令
該命令是用於訪問硬件時鍾的工具,也稱為Real Time Clock(RTC),對應的設置保存在/etc/adjtime文件中。硬件時鍾獨立於操作系統,即使系統關閉,它仍然工作,用於從硬件時鍾展示時間。
3.1 展示當前日期和時間
[root@strong ~]# hwclock
Sat 21 Sep 2019 03:51:24 PM CST -0.368709 seconds
3.2 設置日期和時間
設置日期和時間的命令為:hwclock --set --date "dd mmm yyyy HH:MM"
[root@strong ~]# hwclock --set --date "21 Sep 2019 16:02:25"
[root@strong ~]# hwclock
Sat 21 Sep 2019 04:02:35 PM CST -0.342764 seconds
3.3 同步日期和時間
可以使用hwclock命令在硬件時鍾和當前系統時間直接互相同步。
3.3.1 系統時間同步到硬件時鍾
[root@strong ~]# hwclock --systohc
3.3.2 硬件時鍾同步到系統時間
[root@strong ~]# hwclock --hctosys