RHEL7、CentOS7提供三種命令行方式方式來設(shè)置和顯示日期、時(shí)間。
timedatectl是在RHEL7及CentOS7中新增的systemd的一部分,date是傳統(tǒng)的日期時(shí)間設(shè)置命令,hwclock單元訪問的是硬件時(shí)鐘。

一、date命令的時(shí)間顯示和設(shè)置
# date? --help



我們通過date+format來控制顯示信息。
# date
# date -u
# date? "+%Y-%m-%d %H:%M:%S"


# date
# date -d today
# date -s "2019-04-05 09:29:40"

二、關(guān)于hwclock
hwclock,硬件時(shí)鐘,顧名思義,這個(gè)時(shí)間時(shí)存儲(chǔ)在服務(wù)器主板上的時(shí)鐘。
硬件時(shí)鐘存儲(chǔ)的值包括:年、月、日、時(shí)、分、秒。不存儲(chǔ)時(shí)間標(biāo)準(zhǔn)、本地時(shí)間、UTC、DST。這些設(shè)置存放在/etc/adjtime中,當(dāng)我們修改時(shí)間設(shè)置(包括手動(dòng)設(shè)置和自動(dòng)同步)時(shí)該文件被創(chuàng)建。
在RHEL6或CentOS6系統(tǒng)中,系統(tǒng)每次關(guān)機(jī)或重啟都會(huì)自動(dòng)執(zhí)行這個(gè)命令。
在RHEL7或CentOS7中,當(dāng)系統(tǒng)時(shí)間向NTP服務(wù)器或PTP服務(wù)器同步時(shí)間后,每隔11分鐘內(nèi)核自動(dòng)同步硬件時(shí)鐘到系統(tǒng)時(shí)鐘。?
# hwclock --help

一般,我們?cè)O(shè)置完系統(tǒng)時(shí)間后,需要執(zhí)行 hwclock? -w 使硬件時(shí)間和當(dāng)前設(shè)置的系統(tǒng)時(shí)間同步,否則重啟,當(dāng)前時(shí)間設(shè)置會(huì)失效!
#? date -s "2019-04-05 09:29:40"
#??hwclock? -w?
三、關(guān)于timdatectl?
# timdatectl --help


# timedatectl

# timedatectl | grep -i "Time zone" |head -1| awk '{print $3}'

# timedatectl set-ntp? 1|yes|true
# timedatectl set-ntp? 0|no|false
如果服務(wù)器的ntpClient要跟ntpServer 用ntpdate進(jìn)行第一次快速同步時(shí),需先設(shè)置?timedatectl set-ntp?no 和關(guān)閉客戶端ntpd服務(wù),待ntpdate同步完成,再開啟。
# timedatectl??set-local-rtc? ?1|yes|true
# timedatectl??set-local-rtc? ?? 0|no|false
一般,不建議設(shè)置? timedatectl??set-local-rtc? yes


#? ls /usr/share/zoneinfo/
# ls /usr/share/zoneinfo/Asia/

可以看到,在Linux時(shí)區(qū)設(shè)置上,是沒有?Asia/Beijing的,有的是??Asia/Chongqing??Asia/Shanghai??Asia/Taipei,如果不用UTC時(shí)間,我們一般使用?Asia/Shanghai?
# timedatectl set-timezone? ?Asia/shanghai
實(shí)際上是做了如下操作:
# In? ?-sf? ?/usr/share/zoneinfo/Asia/Shanghai? ? ?/etc/localtime
# timedatectl set-time? ? "2019-02-26"
# timedatectl set-time? ? "10:48:30"
# timedatectl set-time? ? "2019-02-26 10:48:30"
# hwclock -w
四、參考
timedatectl 中文手冊(cè)
http://www.jinbuguo.com/systemd/timedatectl.html
如何設(shè)置時(shí)間,時(shí)區(qū)和同步系統(tǒng)時(shí)鐘使用timedatectl命令
http://linux.51yip.com/search/timedatectl
https://www.howtoing.com/set-time-timezone-and-synchronize-time-using-timedatectl-command
https://www.tecmint.com/set-time-timezone-and-synchronize-time-using-timedatectl-command