linux 伺服器時間同步
1、3臺cache伺服器時間有差異
同事說3臺伺服器時間不一致,在執行分散式任務的時候出了詭異的問題,趕緊去看下3臺cache伺服器,果然彼此相差幾分鐘。
[[email protected]_3_40 ~]# date
2016年 07月 26日 星期二 17:24:57 CST
[[email protected]_3_40 ~]#
[[email protected]_3_41 ~]# date
2016年 07月 26日 星期二 17:27:44 CST
[[email protected]_3_41 ~]#
[[email protected]_3_42 ~]# date
2016年 07月 26日 星期二 17:29:46 CST
[[email protected]_3_42 ~]#
記得在搭建伺服器的時候,通過date -s 09:38:40設定過時間,而且還用設定好了時區,預計是linux系統執行久了後,會存在一點點時間上的誤差,所以需要重新進行時間同步
2、重新設定時間同步
先設定時區:
cp -f /usr/share/zoneinfo/Asia/Shanghai/etc/localtime -y
echo 'ZONE="Asia/Shanghai"' >/etc/sysconfig/clock
hwclock
首先需要安裝同步服務元件ntpdate
yum install -y ntpdate
先手動ntpdate命令同步時間,同步報錯
[[email protected]_3_41 ~]# /usr/sbin/ntpdate -u pool.ntp.org
26 Jul 17:33:14 ntpdate[20154]: the NTP socketis in use, exiting
[[email protected]_3_41 ~]#
原因是有ntpd服務佔據了socket埠,所以關閉ntpd服務,然後再執行同步命令
[[email protected]_3_40 ~]# service ntpd stop
關閉 ntpd: [確定]
[[email protected]_3_40 ~]# /usr/sbin/ntpdate -u pool.ntp.org
26 Jul 17:44:02 ntpdate[32191]: step timeserver 115.28.122.198 offset 693.768108 sec
[[email protected]_3_40 ~]#
[[email protected]_3_40 ~]# date
2016年 07月 26日 星期二 17:44:05 CST
[[email protected]_3_40 ~]#
PS:加上-u引數:
若不加上-u引數,會出現以下提示:no server suitable for synchronization found;-u:從man ntpdate中可以看出-u引數可以越過防火牆與主機同步;
PS:date命令手動設定時間:
date :檢視當前時間,結果如下:Tue Mar 401:36:45 CST 2014
date -s 09:38:40 :設定當前時間,結果如下:TueMar 4 09:38:40 CST 2014
3、設定crontab定時任務及時同步時間
為了crontab任務的允許安全起見,取消ntpd開機自啟動
chkconfig ntpd off;
[[email protected]_3_42 ~]# chkconfig ntpd off;
[[email protected]_3_42 ~]#
然後這裡設定自動同步crontab任務,每隔30分鐘同步一次。
crontab -e
*/30 * * * * /usr/sbin/ntpdate -upool.ntp.org >> /var/log/crontab.log 2>&1
4、一些常用的時間伺服器
ntp常用伺服器:
中國國家授時中心:210.72.145.44
NTP伺服器(上海) :ntp.api.bz
美國:time.nist.gov
復旦:ntp.fudan.edu.cn
微軟公司授時主機(美國) :time.windows.com
臺警大授時中心(臺灣):asia.pool.ntp.org
經測試中國國家授時中心與NTP上海伺服器可以正常同步時間,注意需要加上-u引數!