《Linux系統》之"皮毛系列"(十)使用定時器進行時間同步

玩linux系統的人應該知道這個事情,那就是Linux系統時間有兩個,一個是硬件時間,即BIOS時間;另一個是系統時間,即linux系統Kernel(內核程序)時間。當Linux啓動時,系統Kernel會去讀取硬件時鐘的設置,然後系統時鐘就會獨立於硬件運作。而某些時候,我們會發現系統時鐘和硬件時鐘不一致,此時需要進行時間同步。

一、設置Linux系統的時區

1.查看時間或者時區

#查看時間
[root@localhost ~]# date                   
Wed Aug 14 08:08:05 EDT 2019                 #EDT 北美東部夏令時間,不是中國所在的東八區

或者

#查看時區   東八區樣式:CST +0800
[root@localhost ~]# date +"%Z %z"            
EDT -0400

2.修改爲東八區的亞洲/上海。

# 覆蓋/etc/sysconfig/clock,修改爲亞洲/上海時區
[root@localhost ~]# echo "Asia/Shanghai" > /etc/sysconfig/clock
# 刪除原有的本地時間文件
[root@localhost ~]# rm -f /etc/localtime
# 鏈接上海文件
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#再次查看時區
[root@localhost ~]# date +"%Z %z"
CST +0800

二、利用定時器crontab來定時進行時間同步

1. 查看是否安裝了ntp服務,

[root@localhost ~]# rpm -qa | grep ntp
[root@localhost ~]#                   

沒有任何輸出,說明沒有安裝,此時應該先安裝:yum -y install ntp.x86_64。如果有,直接去2。

[root@localhost ~]# yum -y install ntp.x86_64

2. 編輯root用戶的定時任務

[root@localhost ~]# crontab -u root -e

3. 設置每分鐘同步一次(設置一分鐘只是爲了測試)

前五列的*,分別表示:分鐘   小時   日   月  周
*/1  :寫在分鐘的位置,表示頻率,每一分鐘的含義
第六列:表示要執行的命令:ntpdate命令要寫絕對路徑:/usr/sbin/ntpdate 
-u 用於指定時間服務器的一個參數
time.windows.com :是微軟時間服務器
;兩個命令的分隔符
/sbin/hwclock -w :將時間寫入到bios中。

到這裏直接去看4。同步成功後,再回來設置實際工作:

0 6 1,10,20 1-12 0,3,6 /usr/sbin/ntpdate -u time.windows.com;/sbin/hwclock -w

0:表示0分。  範圍0~59.
6:表示6點。  範圍0~23
1,10,20:表示1號,10號,20號。範圍1~31
1-12:表示每個月。範圍1~12
0,3,6:表示週日,週四,週日。範圍0-6,0表示週日

注意:逗號分開表示集合。-連接表示區間

4. 一分鐘左右,再次查看時間: 成功同步。哦耶

[root@localhost ~]# date
Wed Aug 14 12:32:42 CST 2019

-----------------------------------------------如有疑問,敬請留意----------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章