我有一个设置为每周一凌晨 1 点运行的 cron
0 1 * * 1 /script/dir/script >> /script/dir/file.log
Run Code Online (Sandbox Code Playgroud)
按预期运行两年后,它在 6 月 18 日运行了两次,第二次调用发生在第一次调用之后的 ½ - 1 秒。什么可能导致这种情况发生?
它不是由人类第一次或第二次运行。
该脚本与网站相关联,但位于文档根目录之外。
时钟是否可能在同一时刻同步,迫使它倒退 1 秒并在凌晨 1 点重新运行 cron?
我下面的答案一定是错误的,我混淆了日期:最近的闰秒是在 2012 年 6 月 30 日 23:59:60 UTC 插入的。不是 6 月 18 日。
那天推出的闰秒。
闰秒不像闰年那样可预测,它们通常是由于大地震、海啸……之类的事情引起的。如果闰年是可以合理预测的(大约每四年一次),则闰秒则不能。有一个由聪明人组成的委员会(我相信是在联合国)决定应该引入闰秒。这只能提前大约 60 天预测。许多系统不喜欢在到达 ...:00 之前从 ...:59 到 ...:60 的时间。数据库不喜欢时间被倒退一秒,它们对只出现一次的时间戳非常挑剔。
https://en.wikipedia.org/wiki/Leap_second#Announcement_of_leap_seconds