我们运行的是 CentOS 版本 6.2 (最终版) 2.6.32-220.13.1.el6.x86_64 和库存 cronie.x86_64 1.4.4-7.el6。
自 3 月 31 日起,我们启用夏令时:03:00 变为 04:00。
在 crontab 中我们有:
0 4 * * * /usr/bin/php /some_script.php
在日志中我们发现这个脚本被执行了12次:
Mar 31 02:56:01 web CROND[1910]: (root) CMD (/etc/webmin/virtual-server/collectinfo.pl)
Mar 31 04:00:01 web CROND[2492]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Mar 31 04:00:01 web CROND[2496]: (mailman) CMD (/usr/lib/mailman/cron/gate_news)
Mar 31 04:00:01 web CROND[2491]: (root) CMD (/usr/lib64/sa/sa1 600 6 &)
Mar 31 04:00:01 web CROND[2497]: (root) CMD (/etc/webmin/status/monitor.pl)
Mar 31 04:00:01 web CROND[2500]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:00:01 web CROND[2509]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:00:01 web CROND[2512]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:00:01 web CROND[2514]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:00:01 web CROND[2534]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:00:02 web CROND[2553]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:00:12 web CROND[2560]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:00:22 web CROND[2670]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:00:32 web CROND[2673]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:00:42 web CROND[2675]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:00:52 web CROND[2678]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:01:02 web CROND[2680]: (some_user) CMD (/usr/bin/php /some_script.php )
Mar 31 04:01:02 web CROND[2683]: (root) CMD (run-parts /etc/cron.hourly)
Mar 31 04:01:02 web CROND[2684]: (root) CMD (/etc/webmin/virtual-server/collectinfo.pl)
Mar 31 04:01:02 web run-parts(/etc/cron.hourly)[2683]: starting 0anacron
Mar 31 04:01:02 web anacron[2693]: Anacron started on 2013-03-31
Mar 31 04:01:02 web run-parts(/etc/cron.hourly)[2695]: finished 0anacron
Mar 31 04:01:02 web run-parts(/etc/cron.hourly)[2683]: starting awstats
非常感谢任何建议。
答案1
这是一个已知的错误:
我曾在 3 月 31 日(CET -> CEST)在 CentOS 6.2 上使用 cronie-1.4.4-7.el6.x86_64 看到过这种情况
答案2
由于我主要使用服务器来托管可由世界任何时区访问的基于 Web 的服务,因此我的服务器以 UTC 运行(没有 DST)。任何面向公众的界面都会转换为用户的本地时间(根据他们的偏好配置)。
需要注意的是,有些服务不能很好地处理被抛入未来(或过去)的情况。