我的一个
linux服务器的时钟几乎每周都会丢失10分钟.我更新时间以保持正确,虽然它并没有真正打扰我,但我想解决它.
我一直在寻找.在crontab中没有任何东西可以负责,我在日志中找不到任何相关的消息.
有些人似乎使用ntp来解决这类问题,但我不想在其上使用不必要的组件.
Uname结果:
Linux unis-monitor 2.6.32-5-686#1 SMP Mon Feb 25 01:04:36 UTC 2013 i686 GNU / Linux
猫消息:
cat messages Jul 14 06:25:06 unis-monitor rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="882" x-info="http://www.rsyslog.com"] rsyslogd was HUPed,type 'lightweight'. Jul 15 06:25:05 unis-monitor rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="882" x-info="http://www.rsyslog.com"] rsyslogd was HUPed,type 'lightweight'.
Cat系统日志
cat syslog Jul 15 06:25:05 unis-monitor rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="882" x-info="http://www.rsyslog.com"] rsyslogd was HUPed,type 'lightweight'. Jul 15 06:39:01 unis-monitor /USR/SBIN/CRON[15272]: (root) CMD ( [ -x /usr/lib/PHP5/maxlifetime ] && [ -d /var/lib/PHP5 ] && find /var/lib/PHP5/ -type f -cmin +$(/usr/lib/PHP5/maxlifetime) -delete) Jul 15 07:09:01 unis-monitor /USR/SBIN/CRON[15465]: (root) CMD ( [ -x /usr/lib/PHP5/maxlifetime ] && [ -d /var/lib/PHP5 ] && find /var/lib/PHP5/ -type f -cmin +$(/usr/lib/PHP5/maxlifetime) -delete) Jul 15 07:17:01 unis-monitor /USR/SBIN/CRON[15521]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Jul 15 07:39:01 unis-monitor /USR/SBIN/CRON[15662]: (root) CMD ( [ -x /usr/lib/PHP5/maxlifetime ] && [ -d /var/lib/PHP5 ] && find /var/lib/PHP5/ -type f -cmin +$(/usr/lib/PHP5/maxlifetime) -delete) Jul 15 08:09:01 unis-monitor /USR/SBIN/CRON[15855]: (root) CMD ( [ -x /usr/lib/PHP5/maxlifetime ] && [ -d /var/lib/PHP5 ] && find /var/lib/PHP5/ -type f -cmin +$(/usr/lib/PHP5/maxlifetime) -delete) Jul 15 08:17:01 unis-monitor /USR/SBIN/CRON[15911]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Jul 15 08:39:01 unis-monitor /USR/SBIN/CRON[16052]: (root) CMD ( [ -x /usr/lib/PHP5/maxlifetime ] && [ -d /var/lib/PHP5 ] && find /var/lib/PHP5/ -type f -cmin +$(/usr/lib/PHP5/maxlifetime) -delete) Jul 15 09:09:01 unis-monitor /USR/SBIN/CRON[16273]: (root) CMD ( [ -x /usr/lib/PHP5/maxlifetime ] && [ -d /var/lib/PHP5 ] && find /var/lib/PHP5/ -type f -cmin +$(/usr/lib/PHP5/maxlifetime) -delete)
那么,如果你有任何关于在哪里寻找或我可以用来监控这些日期变化的线索?
这是一些更多的信息:服务器是在win 2012服务器上的HyperV上托管的虚拟服务器.不知道它是否有任何改变,看到托管的其他服务器没有这个问题…
解决方法
HyperV是疾病,NTPd是治愈的.
在哪里查看或我可以用来监控这些日期变化?
您可以查询NTPd守护程序(通过ntpq客户端)以获取本地时钟和NTPd服务器参考时钟之间的差异.但这意味着实际运行NTPd,因此您不会单独监视您的更改,而是监视正在运行的本地时钟和NTPd的组合效果,使其保持同步.
我实际上并不知道你是否可以配置NTPd来运行(并给你上面提到的指标)但是不能实际调整系统时钟.一种不同且效率较低的方法是定期(cron?)对一组参考NTPd服务器运行ntpdate -q并监视其输出,这将为您提供时钟和参考之间的差异而不实际接触本地时钟.输出将是这样的:
$ntpdate -q $YOUR_TLD.pool.ntp.org [... list of queried servers ...] 17 Jul 12:14:11 ntpdate[42868]: adjust time server 109.168.106.59 offset -0.002517 sec
您可以过滤最后一个数字并绘制图形,以便更好地了解时钟跳转的次数和时间:
$OFFSET=$( ntpdate -q $YOUR_TLD.pool.ntp.org | grep adjust | awk '{ print $10 }' ) $echo $OFFSET 0.002970