兩臺linux機器時間同步

landf發表於2011-01-23

Linux自帶了ntp服務 -- /etc/init.d/ntpd,這個服務不僅可以設定讓本機和某臺/某些機器做時間同步,他本身還可以扮演一個time server的角色,讓其他機器和他同步時間。

配置檔案就是/etc/ntp.conf。

為了測試,設定讓node2 -- 192.168.1.102和node1 -- 192.168.1.101做時間同步。
第一步,
node1做time server,node1本身不和其他機器時間同步,就是取本地時間。
所以,先把node1機器的時間調準了:

[root@node1 ~]date --set "01/23/2011 10:49"
[root@node1 ~]clock -w
[root@node1 ~]hwclock --systohc

後兩個命令是把設定的時間寫到硬體時間中去(也就是CMOS裡面的時間)。

第二步,
然後將node1配置成一個time server,修改/etc/ntp.conf,
[root@node1 ~]vi /etc/ntp.conf
其他的配置不怎麼需要改,只需要關注restrict的配置:

1. 註釋掉原來的restrict default ignore這一行,這一行本身是不響應任何的ntp更新請求,其實也就是禁用了本機的ntp server的功能,所以需要註釋掉。

2. 加入:restrict 192.168.1.0 mask 255.255.255.0 -- 讓192.168.1.0/24網段上的機器能和本機做時間同步

3. 這樣就可以了,記得下面的:

server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10

這兩行需要,這是讓本機的ntpd和本地硬體時間同步。

當然,我們也可以新增server xxx.xxx.xxx.xxx,讓他和其他的time server時間同步。

4. /etc/init.d/ntpd restart

5. chkconfig ntpd on

6. 修改iptables配置,將tcp和udp 123埠開放,這是ntp需要的埠,在/etc/services中可以查到這個埠。


第三步,
這樣node1就成為一臺time server了,現在我們配置node2這臺機器,也是修改/etc/ntp.conf ,
[root@node2 ~]vi /etc/ntp.conf

1. restrict default ignore這行保留為註釋狀態,因為sales不需要做time server

2. 註釋掉server 127.127.1.0, fudge 127.127.1.0 stratum 10這兩行,因為這臺機器不需要和本地硬體時鐘同步了。

3. 加入server 192.168.1.101這行,和node1機器同步。


這樣就OK了。看看時間,已經和node1同步了。往後預設配置好像是5分鐘和time server同步一次。ntpdate命令是顯式的和某臺機器做時間同步,以前將ntpdate放到crontab中定期同步也是可以的,但是既然ntpd本身就可以做這個時間

第四步,將ntpdate放到crontab中定期步也是可以的
[root@node2 ~]#vi ntpupdate.sh
/usr/sbin/ntpdate 192.168.1.101
[root@node2 ~]#chmod 755 ntpupdate.sh
[root@node2 ~]#crontab -e
*/1 * * * * /root/ntpupdate.sh
[root@node2 ~]#/etc/init.d/crond restart

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14359/viewspace-684487/,如需轉載,請註明出處,否則將追究法律責任。

相關文章