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
2012.6.26更新
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 0.asia.pool.ntp.org
restrict 1.asia.pool.ntp.org
restrict 2.asia.pool.ntp.org
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.2.0 mask 255.255.255.0 nomodify
server 0.asia.pool.ntp.org prefer
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
2013.10.29 更新
定时任务检测机制
cron 守护进程每分钟都检查 /etc/crontab 文件、/etc/cron.d/ 目录、以及 /var/spool/cron/[username]文件
-The End-