假设有三台服务器 yitian1 ,yitian2 ,yitian3 ;要使这三台服务器时间同步有两种方式,一种是每个服务器都和公网上的时间服务器同步,另外一种是其中一台服务器(yitian1)和公网上的时间服务器同步,然后其他服务器(yitian2和yitian3)和yitian1时间同步;一般在比较大的集群中都是采用第二种方式,只不过为了提供可靠性,配置两台服务器和公网上的时间服务器进行时间同步,然后其他集群中的服务器通过内网进行时间同步。
时间同步步骤:
一、配置yitian1服务器上的时间服务(ntpd)在linux的3级别启动(也就是开机启动)
chkconfig --level 3 ntpd on
二、 启动ntpd服务(因为配置了ntpd开机启动,而现在电脑没有重启,所以先直接启动ntpd服务,下次电脑重启的时候就默认启动了)
/etc/init.d/ntpd start
三、编写时间同步脚本 ~/scripts/sametime.sh
/usr/sbin/ntpdate time.windows.com > /dev/null 2>&1
其中的time.windows.com表示的是公网上的时间服务器
四、编写定时任务进行时间同步,每十分钟进行一次时间同步
执行命令 crontab -e
*/10 * * * * /bin/sh ~/scripts/sametime.sh
五、在yitian2和yitian3分别进行以下操作
(1)编写时间同步脚本 ~/scripts/sametime.sh
/usr/sbin/ntpdate yitian1 >/dev/null 2>&1
因为 yitina2和yitian3都要与yitian1进行时间同步,所以这里的时间同步地址就是yitian1的主机名
(2)编写 定时任务进行时间同步,每十分钟进行一次时间同步
执行命令 crontab -e
*/10 * * * * /bin/sh ~/scripts/sametime.sh
注意:
在配置定时任务的时候,要注意环境变量和命令或者文件的路径,命令或者文件必须要用绝对路径。相应的环境变量也要添加到脚本的执行命令之前。