Linux ntpdate时间同步所想到的

同事与第三方做联调,反映测试据库时间不正确,检查后发现是Linux系统时间没同步。第一反映是去做时间同步(可能大多数人都是这么想的)。然而这个同步几乎耽误了我一下午的时间。

 

简单记录操作步骤:

1. date命令查看当前时间,检查操作系统时间是否正确。

2. 把时间同步命令写到/etc/crontab

3. 与时间同步服务器做同步 /usr/sbin/ntpdate 192.168.19.10;

3. 写入硬件时钟 /sbin/hwclock -w

4. date命令检查时间是否同步

5. 检查数据库中的时间已经正确

6. 退出客户端

 

一会同事想知道时间同步前与同步后相差多少秒,然后去修改数据。

1.       由于用ntpdate做时间同步时并没有记录日志,所以在/var/log/message中没看到时间同步的记录。

查看/var/log/message 只有这样一条记录:

Nov 26 14:05:26 Test-DB01 kernel: hpet1: lost 2 rtc interrupts

 

2. 由于已经从客户端退出,客户端也没有开启日志功能,所以无法通过执行命令时产生的日志看到当时同步的记录。

3. 通过linuxhistory来看执行的历史命令,只能看到执行的命令,但看不到执行的时间。

4. 想通过时间同步服务器查询服务器的同步记录,但时间同步服务器在总部,我们也无法看到。

 

实在想不到其他的办法了,如果谁有其它方法请不吝赐教。只能用个近似的时间了。

 

1.由于修改过/etc/crontab,可以看到/etc/crontab最后修改时间。这个时间跟手工执行ntpdate的时间应该不差几秒。

2.由于用hwclock写入过硬件时钟,所以在/etc/adjtime下会有记录。

/etc/adjtime 内容如下:

-0.002542 1385445926 0.000000

1385445926

UTC

 

mysql> select FROM_UNIXTIME(1385445926) FROM DUAL;

+---------------------------+

| FROM_UNIXTIME(1385445926) |

+---------------------------+

| 2013-11-26 14:05:26       |

+---------------------------+

 用这个时间减去/etc/crontab的修改时间,大概可以得出服务器与时间同步服务器之间相差的时间了。

 

 

总结:

1.如果ntpdate 同步时加了 -s 写日志参数则在/var/log/message中会有这样的记录

Nov 26 17:28:51 Test-DB01 ntpdate[10764]: adjust time server 192.168.19.10 offset 0.039235 sec

 

2. 如果在.bash_profile 中记录命令的时间 export HISTTIMEFORMAT="%F %T `whoami` "

则可以看到命令的具体执行时间。根据命令执行的时间差也可以算出同步前后的时间差。

 

3. 如果在客户端启用记录日志的功能

如果客户端启用了记录日志功能,则什么麻烦都没有了。

 

可是没有那么多的如果。

不管是生产还是测试,都尽量保持良好的记录操作日志的习惯。让一切操作有迹可寻。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值