同一个程序运行在多台服务器上时,有时需要这些服务器的时钟相同,但是当服务器运行一定时间之后,各个服务器上的时钟会有一定差异,此时就需要让所有服务器自动校准各自时钟。

NTP是一个很方便的时钟服务,可以用此来进行时钟同步。

(以下解决应用于不连接外网的局域网,需求是同步所有服务器时钟。)

1. 选定其中一台服务器192.168.10.1作为基准服务器,即提供时钟服务。

(1)首先确定ntp是否存在,若不存在则通过以下命令安装:

yum install ntp

或者使用rpm安装,下载地址:(找到Centos5的rpm包进行下载)

http://rpm.pbone.net/index.php3?stat=3&search=ntp&srodzaj=3

(2)修改配置文件/etc/ntp.conf,在其中插入:

restrict 192.168.20.0 mask 255.255.255.0 nomodify notrap
其中:

用restrict控管权限
nomodify - 用户端不能更改ntp服务器的时间参数
noquery - 用户端不能使用ntpq,ntpc等命令来查询ntp服务器
notrap - 不提供trap远端登陆

 

(3)此时可以向192.168.20.0的机器提供时间服务了,开启ntp服务:

/etc/rc.d/init.d/ntp start // 启动ntp服务  
chkconfig ntpd on // 让ntp服务开机启动 


(4)检查ntp端口是否已经开启:

netstat -unlnp 
netstat -unlnp

如果正常,应该可以看到123端口已经开启。

 

2.客户端同步

A.ntpdate同步

(1)首先确定ntp是否存在,若不存在则通过以下命令安装:

yum install ntp

或者使用rpm安装,下载地址:(找到Centos5的rpm包进行下载)

http://rpm.pbone.net/index.php3?stat=3&search=ntp&srodzaj=3

 

(2)看看ntpdate是否可用

echo -ne "0 * * * * /usr/sbin/ntpdate 192.168.10.1\n" >> /var/spool/cron/root

 

B.ntpd服务同步

(1)修改/etc/ntp.conf,在里边插入:

server 192.168.20.91 

 
(2)使ntpd服务开启启动

chkconfig ntpd on 


(3)启动客户端ntpd服务

/etc/rc.d/init.d/ntpd start 

 

总结:
1,推荐使用 ntpd 服务。(会要过上一段时间才能完全来同步时间)
2,ntpd开启后,无法使用ntpdate,看如下例子:
[root@zy180 ~]# service ntpd start
Starting ntpd: [ OK ]
[root@zy180 ~]# ntpdate 192.168.1.5
25 Sep 15:25:22 ntpdate[12334]: the NTP socket is in use, exiting