我遇到了一个奇怪的问题,我正在开始排除故障,想知道是否有人能提供任何有用的建议。
我有一个 cronjob,每分钟执行一次,执行一个脚本并将输出附加到文件管理器上的文件中。该作业将自纪元以来的当前时间戳(日期 +%s)和当前正常运行时间(包括当前系统时间)打印到文件中。
脚本如下:
DATE=`date +%s`
UPTIME=`uptime`
echo "$DATE;$UPTIME"
我得到的是:
1325770921; 14:42:01 up 17 days
1325775379; 14:43:01 up 17 days
1325771041; 14:44:01 up 17 days
请注意中间的时间戳大约相差了 1 小时 15 分钟... 有什么想法可以解释原因吗?
答案1
您在评论中提到您正在运行虚拟机。虚拟机应该有一个 NTP 客户端不断运行以校正正确的时间和日期。如果您不这样做,物理硬件时钟和虚拟时钟之间的交互可能会变得混乱,时间会漂移。
真的吗,每一个系统应该运行 NTP,但在虚拟机中它是至关重要的,而不仅仅是推荐的。
Linux 和 BSD 环境应该同时具有 NTPd 和 OpenNTPd;您没有提到您正在使用哪个环境。
答案2
根据您的 VM,您的时钟可能Guest
与其绑定hosts
。
请检查
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
看http://wiki.debian.org/Xen在标题“clocksource/0:时间倒退”之后。如果您碰巧在 Xen VM 上遇到此问题,它会为您提供一些解决方法。
我们在使用这些时遇到了一些有趣的问题,并且根据您的 dom0 有多旧以及您的 domU 客户端有多新,我们必须使用这些xen
来jiffies
使时间正常运行并能够真正在客户端上使用 ntp。