CentOS 7 下關(guān)于時間和日期以及時間同步的應用

在CentOS 6版本涂乌,時間設(shè)置有date、hwclock命令傅寡,從CentOS 7開始放妈,使用了一個新的命令timedatectl。

1. 基本概念

1.1 GMT赏僧、UTC大猛、CST、DST 時間

  • UTC

整個地球分為二十四時區(qū)淀零,每個時區(qū)都有自己的本地時間挽绩。在國際無線電通信場合,為了統(tǒng)一起見驾中,使用一個統(tǒng)一的時間唉堪,稱為通用協(xié)調(diào)時(UTC, Universal Time Coordinated)模聋。

  • GMT

格林威治標準時間 (Greenwich Mean Time)指位于英國倫敦郊區(qū)的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那里的經(jīng)線唠亚。(UTC與GMT時間基本相同链方,本文中不做區(qū)分)

  • CST

中國標準時間 (China Standard Time)

GMT + 8 = UTC + 8 = CST
  • DST

夏令時(Daylight Saving Time) 指在夏天太陽升起的比較早時,將時間撥快一小時灶搜,以提早日光的使用祟蚀。(中國不使用)

1.2 硬件時間和系統(tǒng)時間

  • 硬件時間

RTC(Real-Time Clock)或CMOS時間,一般在主板上靠電池供電割卖,服務器斷電后也會繼續(xù)運行前酿。僅保存日期時間數(shù)值,無法保存時區(qū)和夏令時設(shè)置鹏溯。

  • 系統(tǒng)時間

一般在服務器啟動時復制RTC時間罢维,之后獨立運行,保存了時間丙挽、時區(qū)和夏令時設(shè)置肺孵。

2. timedatectl 命令

2.1 使用幫助

[root@localhost ~]# timedatectl -h
timedatectl [OPTIONS...] COMMAND ...

Query or change system time and date settings.

  -h --help              Show this help
     --version           Show package version
     --adjust-system-clock
                         Adjust system clock when changing local RTC mode
     --no-pager          Do not pipe output into a pager
  -P --privileged        Acquire privileges before execution
     --no-ask-password   Do not prompt for password
  -H --host=[USER@]HOST  Operate on remote host

Commands:
  status                 Show current time settings
  set-time TIME          Set system time
  set-timezone ZONE      Set system timezone
  list-timezones         Show known timezones
  set-local-rtc BOOL     Control whether RTC is in local time
  set-ntp BOOL           Control whether NTP is enabled

2.2 命令示例

1.顯示系統(tǒng)的當前時間和日期

timedatectl
# timedatectl status
# 兩條命令效果等同

2.設(shè)置日期與時間

timedatectl set-time "YYYY-MM-DD HH:MM:SS"
timedatectl set-time "YYYY-MM-DD"
timedatectl set-time "HH:MM:SS"

3.查看所有可用的時區(qū)

timedatectl list-timezones
# 亞洲
timedatectl list-timezones |  grep  -E "Asia/S.*"

4.設(shè)置時區(qū)

timedatectl set-timezone Asia/Shanghai

5.設(shè)置硬件時間

# 硬件時間默認為UTC
timedatectl set-local-rtc 1
# hwclock --systohc --localtime
# 兩條命令效果等同

6.啟用時間同步

timedatectl set-ntp yes
# yes或no; 1或0也可以

3. Chrony 服務

Chrony是網(wǎng)絡時間協(xié)議的 (NTP) 的另一種實現(xiàn),由兩個程序組成颜阐,分別是chronyd和chronyc平窘。

chronyd是一個后臺運行的守護進程,用于調(diào)整內(nèi)核中運行的系統(tǒng)時鐘和時鐘服務器同步凳怨。它確定計算機增減時間的比率初婆,并對此進行補償。

chronyc提供了一個用戶界面猿棉,用于監(jiān)控性能并進行多樣化的配置。它可以在chronyd實例控制的計算機上工作屑咳,也可以在一臺不同的遠程計算機上工作萨赁。

優(yōu)勢:

  • 更快的同步只需要數(shù)分鐘而非數(shù)小時時間,從而最大程度減少了時間和頻率誤差兆龙,這對于并非全天 24 小時運行的臺式計算機或系統(tǒng)而言非常有用杖爽。
  • 能夠更好地響應時鐘頻率的快速變化,這對于具備不穩(wěn)定時鐘的虛擬機或?qū)е聲r鐘頻率發(fā)生變化的節(jié)能技術(shù)而言非常有用紫皇。
  • 在初始同步后慰安,它不會停止時鐘,以防對需要系統(tǒng)時間保持單調(diào)的應用程序造成影響聪铺。
  • 在應對臨時非對稱延遲時(例如化焕,在大規(guī)模下載造成鏈接飽和時)提供了更好的穩(wěn)定性。
  • 無需對服務器進行定期輪詢铃剔,因此具備間歇性網(wǎng)絡連接的系統(tǒng)仍然可以快速同步時鐘撒桨。

在CentOS7下為標配的時間同步服務查刻,當然也可以使用以前的NTP同步方式,不過要安裝NTP服務凤类。

3.1 安裝使用

yum install chrony
systemctl start chronyd
systemctl enable chronyd

3.2 配置文件

當Chrony啟動時穗泵,它會讀取/etc/chrony.conf配置文件中的設(shè)置。也就是鎖谜疤,如果需要更改時間同步的服務器佃延,修改此配置文件即可。

[root@localhost ~]# grep -Ev "^$|^#" /etc/chrony.conf
# 該參數(shù)可以多次用于添加時鐘服務器夷磕,必須以"server "格式使用履肃。一般而言,你想添加多少服務器企锌,就可以添加多少服務器榆浓。
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
# stratumweight指令設(shè)置當chronyd從可用源中選擇同步源時,每個層應該添加多少距離到同步距離撕攒。默認情況下陡鹃,設(shè)置為0,讓chronyd在選擇源時忽略源的層級抖坪。
stratumweight 0
# chronyd程序的主要行為之一萍鲸,就是根據(jù)實際時間計算出計算機增減時間的比率,將它記錄到一個文件中是最合理的擦俐,它會在重啟后為系統(tǒng)時鐘作出補償脊阴,甚至可能的話,會從時鐘服務器獲得較好的估值蚯瞧。
driftfile /var/lib/chrony/drift
# rtcsync指令將啟用一個內(nèi)核模式嘿期,在該模式中,系統(tǒng)時間每11分鐘會拷貝到實時時鐘(RTC)埋合。
rtcsync
# 通常备徐,chronyd將根據(jù)需求通過減慢或加速時鐘,使得系統(tǒng)逐步糾正所有時間偏差甚颂。在某些特定情況下蜜猾,系統(tǒng)時鐘可能會漂移過快,導致該調(diào)整過程消耗很長的時間來糾正系統(tǒng)時鐘振诬。
# 該指令強制chronyd在調(diào)整期大于某個閥值時步進調(diào)整系統(tǒng)時鐘蹭睡,但只有在因為chronyd啟動時間超過指定限制(可使用負值來禁用限制),沒有更多時鐘更新時才生效赶么。
makestep 10 3
# 這里你可以指定一臺主機肩豁、子網(wǎng),或者網(wǎng)絡以允許或拒絕NTP連接到扮演時鐘服務器的機器。
#allow 192.168/16
# 該指令允許你限制chronyd監(jiān)聽哪個網(wǎng)絡接口的命令包(由chronyc執(zhí)行)蓖救。該指令通過cmddeny機制提供了一個除上述限制以外可用的額外的訪問控制等級洪规。
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
# 指定了/etc/chrony.keys中哪一條密碼被使用
commandkey 1
# 此參數(shù)指定了產(chǎn)生一個SHA1或MD5加密的密碼,存放在/etc/chrony.keys中
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony

/etc/chrony.keys文件

[root@localhost ~]#  cat /etc/chrony.keys
#1 a_key

1 SHA1 HEX:8B96920E9C83612FE34A8C281C31310BD2E1F624

內(nèi)容來自 RHEL7 -- 使用Chrony設(shè)置時間與時鐘服務器同步

3.3 chronyc

1.查看幫助

[root@localhost ~]# chronyc --help
Usage: chronyc [-h HOST] [-p PORT] [-n] [-4|-6] [-a] [-f FILE] [-m] [COMMAND]

2.查看詳細的幫助信息

[root@localhost ~]# chronyc
chrony version 2.1.1
Copyright (C) 1997-2003, 2007, 2009-2015 Richard P. Curnow and others
chrony comes with ABSOLUTELY NO WARRANTY.  This is free software, and
you are welcome to redistribute it under certain conditions.  See the
GNU General Public License version 2 for details.

chronyc> help
Commands:
accheck <address> : Check whether NTP access is allowed to <address>
activity : Check how many NTP sources are online/offline
add peer <address> ... : Add a new NTP peer
add server <address> ... : Add a new NTP server
allow [<subnet-addr>] : Allow NTP access to that subnet as a default
allow all [<subnet-addr>] : Allow NTP access to that subnet and all children
burst <n-good>/<n-max> [<mask>/<masked-address>] : Start a rapid set of measurements
clients : Report on clients that have accessed the server
cmdaccheck <address> : Check whether command access is allowed to <address>
cmdallow [<subnet-addr>] : Allow command access to that subnet as a default
cmdallow all [<subnet-addr>] : Allow command access to that subnet and all children
cmddeny [<subnet-addr>] : Deny command access to that subnet as a default
cmddeny all [<subnet-addr>] : Deny command access to that subnet and all children
cyclelogs : Close and re-open logs files
delete <address> : Remove an NTP server or peer
deny [<subnet-addr>] : Deny NTP access to that subnet as a default
deny all [<subnet-addr>] : Deny NTP access to that subnet and all children
dump : Dump all measurements to save files
local off : Disable server capability for unsynchronised clock
local stratum <stratum> : Enable server capability for unsynchronised clock
makestep [<threshold> <updates>] : Correct clock by stepping
manual off|on|reset : Disable/enable/reset settime command and statistics
manual list : Show previous settime entries
maxdelay <address> <new-max-delay> : Modify maximum round-trip valid sample delay for source
maxdelayratio <address> <new-max-ratio> : Modify max round-trip delay ratio for source
maxdelaydevratio <address> <new-max-ratio> : Modify max round-trip delay dev ratio for source
maxpoll <address> <new-maxpoll> : Modify maximum polling interval of source
maxupdateskew <new-max-skew> : Modify maximum skew for a clock frequency update to be made
minpoll <address> <new-minpoll> : Modify minimum polling interval of source
minstratum <address> <new-min-stratum> : Modify minimum stratum of source
offline [<mask>/<masked-address>] : Set sources in subnet to offline status
online [<mask>/<masked-address>] : Set sources in subnet to online status
password [<new-password>] : Set command authentication password
polltarget <address> <new-poll-target> : Modify poll target of source
reselect : Reselect synchronisation source
rtcdata : Print current RTC performance parameters
settime <date/time (e.g. Nov 21, 1997 16:30:05 or 16:30:05)> : Manually set the daemon time
smoothing : Display current time smoothing state
smoothtime reset|activate : Reset/activate time smoothing
sources [-v] : Display information about current sources
sourcestats [-v] : Display estimation information about current sources
tracking : Display system time information
trimrtc : Correct RTC relative to system clock
waitsync [max-tries [max-correction [max-skew]]] : Wait until synchronised
writertc : Save RTC parameters to file

authhash <name>: Set command authentication hash function
dns -n|+n : Disable/enable resolving IP addresses to hostnames
dns -4|-6|-46 : Resolve hostnames only to IPv4/IPv6/both addresses
timeout <milliseconds> : Set initial response timeout
retries <n> : Set maximum number of retries
exit|quit : Leave the program
help : Generate this help

chronyc> quit

3.常用命令

  • accheck 檢查NTP訪問是否對特定主機可用
  • activity 該命令會顯示有多少NTP源在線/離線
  • add server 手動添加一臺新的NTP服務器
  • clients 在客戶端報告已訪問到服務器
  • delete 手動移除NTP服務器或?qū)Φ确掌?/li>
  • settime 手動設(shè)置守護進程時間
  • tracking 顯示系統(tǒng)時間信息

示例:查看時間同步的信息來源

[root@localhost ~]# chronyc sources
210 Number of sources = 3
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ 202.118.1.130                 2   6    37   104  +2189us[  +23ms] +/-   27ms
^* dns1.synet.edu.cn             2   6    77    40   +626us[  +21ms] +/-   33ms
^? 2001:da8:9000::81             0   6     0   10y     +0ns[   +0ns] +/-    0ns

sources可以加-v參數(shù)查看狀態(tài)信息的說明

[root@localhost ~]# chronyc sources -v
210 Number of sources = 3

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ 202.118.1.130                 2   6    37   126  +2189us[  +23ms] +/-   27ms
^* dns1.synet.edu.cn             2   6    77    61   +626us[  +21ms] +/-   33ms
^? 2001:da8:9000::81             0   6     0   10y     +0ns[   +0ns] +/-    0ns

4.chronyc在桌面版提供用戶界面循捺,需要通過以下命令安裝

yum -y install system-config-date

4. 實例

4.1 設(shè)置系統(tǒng)時間為中國時區(qū)并啟用時間同步

# 安裝
yum install chrony
# 啟用
systemctl start chronyd
systemctl enable chronyd
# 設(shè)置亞洲時區(qū)
timedatectl set-timezone Asia/Shanghai
# 啟用NTP同步
timedatectl set-ntp yes

這樣服務器的時間就跟NTP服務器同步了斩例,非常簡單的操作。

也可以不使用Chrony从橘,用NTP服務的時間同步念赶。但不推薦

4.2 安裝NTP服務使用其同步時間

# 安裝ntp服務
yum install ntp
# 開機啟動服務
systemctl enable ntpd
# 啟動服務
systemctl start ntpd
# 設(shè)置亞洲時區(qū)
timedatectl set-timezone Asia/Shanghai
# 啟用NTP同步
timedatectl set-ntp yes
# 重啟ntp服務
systemctl restart ntpd
# 手動同步時間
ntpq -p

4.3 RTC設(shè)為本地時間會有告警

[root@localhost ~]# timedatectl set-local-rtc 1
[root@localhost ~]# timedatectl
      Local time: Thu 2016-05-26 15:31:59 CST
  Universal time: Thu 2016-05-26 07:31:59 UTC
        RTC time: Thu 2016-05-26 15:31:59
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: yes
      DST active: n/a

Warning: The system is configured to read the RTC time in the local time zone.
         This mode can not be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.

因為硬件時鐘不能保存時區(qū)和夏令時調(diào)整恰力,修改后就無法從硬件時鐘中讀取出準確標準時間叉谜;不建議修改。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末踩萎,一起剝皮案震驚了整個濱河市停局,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌香府,老刑警劉巖董栽,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異企孩,居然都是意外死亡锭碳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門勿璃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擒抛,“玉大人,你說我怎么就攤上這事补疑∑缁Γ” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵莲组,是天一觀的道長槽畔。 經(jīng)常有香客問我,道長胁编,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任鳞尔,我火速辦了婚禮嬉橙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寥假。我一直安慰自己市框,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布糕韧。 她就那樣靜靜地躺著枫振,像睡著了一般喻圃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粪滤,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天斧拍,我揣著相機與錄音,去河邊找鬼杖小。 笑死肆汹,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的予权。 我是一名探鬼主播昂勉,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼扫腺!你這毒婦竟也來了岗照?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤笆环,失蹤者是張志新(化名)和其女友劉穎攒至,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咧织,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡嗓袱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了习绢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渠抹。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖闪萄,靈堂內(nèi)的尸體忽然破棺而出梧却,到底是詐尸還是另有隱情,我是刑警寧澤败去,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布放航,位于F島的核電站,受9級特大地震影響圆裕,放射性物質(zhì)發(fā)生泄漏广鳍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一吓妆、第九天 我趴在偏房一處隱蔽的房頂上張望赊时。 院中可真熱鬧,春花似錦行拢、人聲如沸祖秒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竭缝。三九已至房维,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抬纸,已是汗流浹背咙俩。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留松却,地道東北人暴浦。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像晓锻,于是被迫代替她去往敵國和親歌焦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容