由於是在做mongoDB的實驗中再一次的遇到了mongos路由節點同步時由於ntp時間的問題導致同步非常的慢。故寫了個時間同步的語句===>
while :; do rdate -s 192.168.109.129; sleep 2s; done > /dev/null 2>&1 &
rdate: couldn't connect to host 192.168.109.129: Connection refused
3. 同步時間
/usr/bin/rdate -s rdate.darkorb.net
1.查詢是否安裝ntp,若沒有安裝的話使用yum進行安裝
rpm -q ntp
yum –y install ntp
2.服務器端配置
服務器端需要修改配置文件/etc/ntp.conf
vi /etc/ntp.conf
2.1以互聯網的時間服務器為時間服務器的時鍾
設置要求:以time.nist.gov 為時間服務器,在ntp.conf中增加或修改以下內容:
restrict default ignore # 關閉所有的 NTP 要求封包
restrict 192.168.1.0 mask 255.255.255.0 notrap nomodify
server time.nist.gov #設置時間服務器
server 127.127.1.1 #開啟內部遞歸網絡接口
fudge 127.127.1.1 stratum 10 refid NIST # LCL 不同步
driftfile /etc/ntp.drift
logfile /var/log/ntp.log
Broadcastdelay 0.008 #廣播延遲時間#
2.2以內部ntp服務器為數據服務器時鍾
設置要求:不對 Internet 提供服務,僅對內部子網提供服務,內部子網的客戶端不能修改NTP服務器的時間參數。
在ntp.conf中增加或修改以下內容:
restrict default ignore # 關閉所有的 NTP 要求封包
restrict 127.0.0.1 # 開啟內部遞歸網絡接口 lo
restrict 192.168.0.0 mask 255.255.255.0 nomodify #在內部子網里面的客戶端可以 進行網絡校時,但不能修改NTP服務器的時間參數。
server 198.168.77.170 #198.123.30.132作為上級時間服務器參考
driftfile /var/lib/ntp/drift
broadcastdelay 0.008 #廣播延遲時間#
3.啟動服務
啟動NTP服務
service ntpd start
如果想每次系統啟動,NTP服務自動啟動,請輸入下面命令:
/sbin/chkconfig --add ntpd
/sbin/chkconfig --level 234 ntpd on //配置在開機時運行
打開iptables防火牆123端口
NTP服務的端口是123,使用的是udp協議,所以NTP服務器的防火牆必須對外開放udp 123這個端口。方法如下,使用以下規則:
/sbin/iptables -A INPUT -p UDP -i eth0 -s 192.168.0.0/24 \
> --dport 123 -j ACCEPT
查看ntp服務器工作情況
通常我們使用命令查看123端口和ntp系統進程判斷ntp服務器是否工作正常。命令如下:
netstat -unl | grep 123 #查看123端口
ps -ef|grep ntp #查看ntp進程是否啟動
4.監控ntp服務器
ntpq用來監視ntpd操作,使用標准的NTP模式6控制消息模式,並與NTP服務器通信。
ntpq -p查詢網絡中的NTP服務器,同時顯示客戶端和每個服務器的關系。
"* ":響應的NTP服務器和最精確的服務器。
"+":響應這個查詢請求的NTP服務器。
"blank(空格)":沒有響應的NTP服務器。
"remote" :響應這個請求的NTP服務器的名稱。
"refid ":NTP服務器使用的更高一級服務器的名稱。
"st":正在響應請求的NTP服務器的級別。
"when":上一次成功請求之后到現在的秒數。
"poll":當前的請求的時鍾間隔的秒數。
"offset":主機通過NTP時鍾同步與所同步時間源的時間偏移量,單位為毫秒(ms)。
5.客戶端的配置
在Linux 上面進行網絡校時非常簡單,執行 ntpdate 即可:
ntpdate 192.168.77.170 #192.168.77.170是NTP服務器的IP
注意:Ntpd啟動的時候通常需要一段時間大概5分鍾進行時間同步,所以在ntpd剛剛啟動的時候還不能正常提供時鍾服務,報錯"no server suitable for synchronization found"。啟動時候需要等待5分鍾。
如果想定時進行時間校准,可以使用crond服務來定時執行。
編輯 /etc/crontab 文件
vi /etc/crontab
加入下面一行:
00 7 * * * root /usr/sbin/ntpdate 192.168.77.170
>> /root/ntpdate.log 2>&1 #192.168.77.170是NTP服務器的IP地址
然后重啟crond服務
service crond restart
這樣,每天 7:00 Linux 系統就會自動的進行網絡時間校准。