日期 +%s 故障

RnR*_*RnR 5 linux time cron date epoch-time

我有一个奇怪的问题,我开始进行故障排除,想知道是否有人会提供任何有用的提示。

我每分钟执行一个 cronjob,它执行一个脚本并将输出附加到文件管理器上的文件中。该作业将自纪元(日期 +%s)以来的当前时间戳和当前正常运行时间(包括当前系统时间)打印到文件中。

脚本是:

DATE=`date +%s`
UPTIME=`uptime`
echo "$DATE;$UPTIME"
Run Code Online (Sandbox Code Playgroud)

我得到的是:

1325770921; 14:42:01 up 17 days
1325775379; 14:43:01 up 17 days
1325771041; 14:44:01 up 17 days
Run Code Online (Sandbox Code Playgroud)

请注意中间的时间戳是如何减少约 1 小时 15 分钟的。关于原因有什么想法吗?

Mei*_*Mei 1

您在评论中提到您正在运行虚拟机。虚拟机应该有一个运行的 NTP 客户端,不断纠正正确的时间和日期。如果不这样做,物理硬件时钟和虚拟时钟之间的交互可能会变得混乱,时间也会漂移。

实际上,每个系统都应该运行 NTP,但在虚拟机中,它是至关重要的,而不仅仅是推荐的。

Linux 和 BSD 环境应同时提供 NTPd 和 OpenNTPd;你没有提到你正在使用哪个环境。