完全解除linux叢集時間同步問題(老大同步網路,小弟同步老大)
首先確保叢集已經正常使用(搭建叢集完畢)
時間同步的方式:找一個機器,作為時間伺服器,所有的機器與這臺叢集時間進行定時的同步,比如,每隔十分鐘,同步一次時間。
第一步 配置小弟同步老大的操作
配置時間同步實操:
[[email protected] 桌面]# rpm -qa|grep ntp
ntp-4.2.6p5-10.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.6p5-10.el6.centos.x86_64
[[email protected] 桌面]# vi /etc/ntp.conf
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap 為
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst 為
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
[
[[email protected] 桌面]# service ntpd status
[[email protected] 桌面]# service ntpd start
[[email protected] 桌面]# chkconfig ntpd on
[[email protected]3 hadoop-2.7.2]# crontab -e
*/10 * * * * /usr/sbin/ntpdate hadoop102
[[email protected]3 hadoop]# date -s "2017-9-11 11:11:11"
[[email protected]3 hadoop]# date
發現可以同步
第二步 老大同步網路時間
如果老大時間跟網路不一致,下面的小弟時間全部都亂套了 下面再老大機器上同步網路
同步時間需要用到
ntpdate time.nuri.net
但是上面的第一步配置 ntpd start 檢視ntp的狀態
[[email protected] bin]# service ntpd status
ntpd (pid 3030) is running...
正在執行中,如果ntpd正在執行中使用上面的時間同步命令會失敗
20 Sep 09:17:07 ntpdate[3076]: the NTP socket is in use, exiting
報錯,說ntp正在執行,但是他也不能關,如果關了,下面的小弟時間都同步不上老大了,怎麼辦呢
下一個shell指令碼,先把ntp關了,更新同步時間的操作,然後再開啟就行了 本人命名syncTime.sh內容如下
#!/bin/bash
service ntpd stop
echo "停止 ntp. . . . . 。"
ntpdate time.nuri.net
service ntpd start
echo "開啟 ntp......"
把他加到定時任務裡面crontab -e,經過測試無效
*/1 * * * * /usr/local/bin/syncTime.sh 這個命令就是一分鐘更新以下網路時間,看不懂的話可以查詢crontab的相關資料
至於為什麼無效,還不清楚,但是在定時器裡面寫如下程式碼
*/1 * * * * echo "sdafsdf" >> /usr/local/bin/aa.sh
給aa.sh追加sdsas文字內容,1分鐘追加一次,這個有效。。。
真正解決辦法:編輯/etc/crontab 這個檔案
最後一行新增定時任務 在這個檔案執行檔案需要新增root 指定是root使用者
測試,把虛擬機器掛起或者關機3分鐘,然後開啟,會跟網路時間差3分鐘,等待1分鐘,date檢視時間 OK
這樣就配置完成了