解決時間同步
阿新 • • 發佈:2020-12-18
一:問題
1.問題描述
初學Linux(虛擬機器)的小夥伴(俺也是)可能會遇到這種問題:把時區設定成了東八區,時間也修改成了正確的,但是重啟之後,時間又不對了
2.問題原因
分析
在Linux計算機上,有2個時間,一個是硬體時間(BIOS中記錄的時間,稱為hwclock),另一個是作業系統時間(osclock)
硬體時鐘由BIOS電池供電,在虛擬機器中,一旦關機或者掛起,就會影響硬體時間
當計算機關機後,會繼續執行
在Linux系統中,預設使用的是UTC時間
即使在安裝系統的時候,選擇的時區是亞洲上海,Linux預設的BIOS時間(也稱:硬體時間)也是UTC時間
在重啟之後,系統時間會和硬體時間同步,如果兩者不一致,會以硬體時間為標準
所以,之前設定的時區和時間就失效了
UTC
UTC:協調世界時(Universal Time Coordinated) 英文縮寫
是由國際無線電諮詢委員會規定和推薦,並由國際時間局(BIH)負責保持的以秒為基礎的時間標度
UTC相當於本初子午線(即經度0度)上的平均太陽時,過去曾用格林威治平均時(GMT)來表示
北京時間比UTC時間早8小時,以1999年1月1日0000UTC為例,UTC時間是零點,北京時間為1999年1月1日早上8點整
3.檢視時間的相關命令
# 檢視當前系統時間
date
# 檢視當前硬體時間
hwclock
二:解決方法
1.方法1 - 定時同步
① 把當前時區調整為上海(東8區)
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
② 同步標準時間
# 安裝時間同步工具ntpdate(如已安裝,請忽略)
yum install ntpdate -y
# 用工具ntpdate同步時間
ntpdate us.pool.ntp.org
③ 加入定時計劃,每隔5分鐘 同步1次時間
# 配置定時任務
crontab -e
# 按i進入插入模式,輸入以下內容
0-59/10 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP
2.方法2
① 編輯時間配置檔案
# 用vim開啟配置(如果沒裝vim,可以把vim換成vi) vim /etc/sysconfig/clock # 按i進入插入模式,輸入以下內容(# 註釋可以不復制) ZONE="Asia/Shanghai" UTC=false # 設定為false,硬體時鐘不於utc時間一致 ARC=false
② 將Linux時區設定為上海
# 建立同步連線
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
③ 同步標準時間
# 安裝時間同步工具ntpdate(如已安裝,請忽略)
yum install ntpdate -y
# 用工具ntpdate同步時間
ntpdate us.pool.ntp.org
④ 設定硬體時間和系統時間一致並校準
/sbin/hwclock --systohc