介紹兩種同步linux系統的時間方法:
(1) 開啟ntpd服務,即配置ntp服務器實現時間同步。
(2) 利用ntp客戶端程序,即ntpdate同步時間。
注意:因為ntp服務器本來就會與上層時間服務器進行同步,所以在默認的情況下,ntp服務器不可以使用ntpdate,也就是說ntpdate和ntpd不能同時啟用。
1. 開啟ntpd服務同步時間
首先介紹兩個可用的ntp服務器
中國ntp服務器:cn.pool.ntp.org
上海交通大學網絡中心NTP服務器:ntp.sjtu.edu.cn
1.1 與ntp服務相關的配置文件和數據文件
(1) /etc/ntp.conf: ntp服務器的主要配置文件
(2) /usr/share/zoneinfo/: 由tzdata所提供,為各時區的時間格式對應文件。例如我國的時區格式對應文件是/usr/share/zoneinfo/Asia/Shanghai。這個目錄下的文件與下面要介紹的兩個文件clock和localtime是有關系的
(3) /etc/sysconfig/clock: 設置時區與是否使用UTC時鍾的配置文件。每次開機后Linux會自動讀取這個文件來設置自己系統默認所需要顯示的時間。比如說,在我們中國的本地時間設置中,這個文件應該會有一行 ZONE="Asia/Shanghai" 的字樣,這表示我們的時間配置文件要使用/usr/share/zoneinfo/Asia/Shanghai那個文件
(4) /etc/localtime: 就是本地端的時間配置文件,Linux會將/usr/share/zoneinfo/Asia/Shanghai這個文件內容復制到/etc/localtime中,未來我們的時間顯示就以Shanghai這個配置文件為准。
1.2 ntp服務配置
(1) 首先編輯ntp.conf文件
[root@node1 ~]# vim /etc/ntp.conf
# 處理權限問題
restrict 127.0.0.1 #這兩個是默認值,放行本機來源
restrict -6 ::1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # 放行局域網來源
# 設置主機來源,請將原來的[0|1|2|3].centos.pool.ntp.org設置注釋掉
restrict cn.pool.ntp.org # 放行cn.pool.ntp.org進入本ntp服務器
server cn.pool.ntp.org prefer # 以這台主機為優先
server ntp.sjtu.edu.cn
(2) 啟動ntp服務,並觀察
# 啟動ntpd服務
[root@node1 ~]# service ntpd start
# 配置開機自啟
[root@node1 ~]# chkconfig ntpd on
# 查看同步狀態,注意:需要一段時間,才能同步成功
[root@node1 ~]# ntpstat
synchronised to NTP server (85.199.214.100) at stratum 2
time correct to within 325 ms
polling server every 128 s
[root@node1 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*85.199.214.100 .GPS. 1 u 35 64 377 310.011 -10.192 3.191
2. ntpdate同步時間
(1) 手動同步時間
[root@node1 ~]# ntpdate cn.pool.ntp.org
3 Jun 18:06:16 ntpdate[2317]: adjust time server 202.112.29.82 offset -0.007719 sec
注意:如果會出現以下提示:no server suitable for synchronization found
加入-u參數,來同步時間
ntpdate -u cn.pool.ntp.org
時間同步完成后,執行命令hwclock -w
,將當前系統時間寫入BIOS。另外hwclock -r
可讀取BIOS中的時間
(2) 配置定時任務,同步時間
[root@node1 ~]# crontab -e
# 每過半個小時同步一次
0 */30 * * * /usr/sbin/ntpdate -u cn.pool.ntp.org > /dev/null 2>&1; /sbin/hwclock -w
(3) 配置開啟啟動校驗
編輯/etc/rc.d/rc.local文件(vim /etc/rc.d/rc.local
),在文件末尾添加如下內容
/usr/sbin/ntpdate -u cn.pool.ntp.org> /dev/null 2>&1; /sbin/hwclock -w