在linux下,可以通過自帶的NTP(Network Time Protocol)協議通過網絡使自己的系統保持精確的時間。
什么是NTP?
NTP是用來使系統和一個時間源保持時間同步的協議。
在自己管理的網絡中建立至少一臺時間服務器來同步本地時間,這樣可以使得在不同的系統上處理和收集日志和管理更加容易。
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 -s 08/03/2011?
[root@node1 ~]clock -w
[root@node1 ~]hwclock --systohc
后兩個命令是把設置的時間寫到硬件時間中去(也就是CMOS里面的時間)。
第二步:
然后將node1配置成一個time server,修改/etc/ntp.conf,
[root@node1 ~]vi /etc/ntp.conf
其他的配置不怎么需要改,只需要關注restrict的配置:
1. 注釋掉下面兩行,本身是不響應任何的ntp更新請求,其實也就是禁用了本機的ntp server的功能,所以需要注釋掉。
? ? ?#restrict default kod nomodify notrap nopeer noquery
? ? ?#restrict -6 default kod nomodify notrap nopeer noquery
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這臺機器
? 關閉ntp服務 service ntpd stop
? 執行: ntpdate ?192.168.1.101 即可手工同步!