Linux时间同步处理

0. 时间设置
查看linux操作系统时间命令为date,如果要设置操作系统日期命令为date -s 20101002,设置时间 date -s 12:10:21,同时设置日期和时间date -s '20101002 12:10:21';
查看机器的bios时间:
hwclock [-rw]
-r:检视目前的 BIOS 时间
-w:将目前 Linux 的时间写入 BIOS 当中!

1. 外网同步
机器可以连接到外网的时候可以使用ntpdate来同步时间,这个方法最简单,只要分别在2个节点上设置下时间同步计划即可。
首先我们设置下错误的系统和硬件时间
root@localhost ~]# date -s '20120101 12:12:12' ; hwclock -w ; date ; hwclock -r
2012年 12月 12日 星期三 12:12:12 CST
2012年 12月 12日 星期三 12:12:13 CST
2012年12月12日 星期三 12时12分15秒  -0.999668 seconds
可以看到系统和硬件时间都被设置到错误的时间去了,现在我们要设置下同步计划:
crontab -e
#选择一个方案即可

*/1 * * * *  /usr/sbin/ntpdate 210.72.145.44 ; /usr/sbin/hwclock -w    #每分钟同步一次
*/59 * * * * /usr/sbin/ntpdate 210.72.145.44 ; /usr/sbin/hwclock -w    #每59分钟同步一次
5 10 * * *   /usr/sbin/ntpdate 210.72.145.44 ; /usr/sbin/hwclock -w    #每天10:05同步一次
最好service crond restart重启下crontab服务,这样就可以同步服务器的时间了。
PS:在使用ntpdate 命令时, ntpd 服务必须是关闭的(/etc/init.d/ntpd stop), 否则会报the NTP socket is in use, exiting 错误。

2. 架设内部服务器
如果服务器无法连接到外网,那就需要架设本地时间服务器,首先在要作为时间服务器的机器上设置:
修改 vi /etc/ntp.conf 增加以下行
server 210.72.145.44 prefer
server 127.127.1.0
restrict 192.168.200.204 mask 255.255.255.0 nomodify
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery
注释:
中国国家授时中心服务器地址 prefer表示优先 注意把默认的server更改成这样
本地时间)   
允许192.168.200.204的IP使用该时间服务器
屏蔽其他IP过来更新时间

相关配置参数说明
#  restrict权限控制语法为:
#  restrict IP mask netmask_IP parameter
#  其中 IP 可以是软件地址,也可以是 default ,default 就类似 0.0.0.0 咯!
#  至于 paramter 则有:
#   ignore :关闭所有的 NTP 联机服务
#   nomodify:表示 Client 端不能更改 Server 端的时间参数,不过,
#        Client 端仍然可以透过 Server 端来进行网络校时。
#   notrust :该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域
#   noquery :不提供 Client 端的时间查询
#  如果 paramter 完全没有设定,那就表示该 IP (或网域) 『没有任何限制!』

#  设定上层主机主要以 server这个参数来设定,语法为:
#  server [IP|FQDN] [prefer]
#  Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数
#  后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为
#  时间校正的对应。另外,为了解决更新时间封包的传送延迟动作,


接着设置NTP服务在系统引导时自动启动    
# chkconfig ntpd on   
启动/关闭/重启NTP的命令:   
# /etc/init.d/ntpd start   
# /etc/init.d/ntpd stop   
# /etc/init.d/ntpd restart   
#service ntpd restart

还需要设置将同步好的时间写到CMOS里   
vi /etc/sysconfig/ntpd   
SYNC_HWCLOCK=yes   
每次修改了配置文件后都需要重新启动服务来使配置生效。
检查NTP服务是否启动,你应该可以得到一个进程ID号:   
pgrep ntpd  #ntpd进程ID号
使用下面的命令检查时间服务器同步的状态:   
ntpq -p 或者 watch ntpq -p ntpstat #检查ntpd同步的状态,完成了和自身同步也可以查看一些同步状态
netstat -ntlup | grep 123 #查看nptd端口使用

客户端设置:   
使用ntpdate进行同步
crontab -e
#选择一个方案即可
*/1 * * * * root /usr/sbin/ntpdate 192.168.2.4 ; /sbin/hwclock -w     #每分钟同步一次
*/59 * * * * root /usr/sbin/ntpdate 192.168.2.4 ; /sbin/hwclock -w     #每59分钟同步一次
5 10 * * *  root /usr/sbin/ntpdate 192.168.2.4 ; /sbin/hwclock -w     #每天10:05同步一次

客户端可以使用ntpdate -d 192.168.2.4命令来检查时间服务器状态。

3. rdate同步
在安装Oracle RAC的时候各个节点间时间必须一致,可以以一个节点作为标准,其他节点与该节点进行时间同步。
GTR1作为标准时间,GTR2节点用GTR1节点时间进行同步:
rdate -s GTR1
也可以在crontab自动执行时间同步。
crontab -l
*/1 * * * * rdate -s GTR1
-The End-

相关推荐