结果,cron 不仅以 UTC 启动它的作业,它还以 UTC 登录,这导致/var/log/auth.log包含如下内容:
May 25 08:19:57 ip-10-50-81-194 sshd[6216]: pam_unix(sshd:session): session opened for user root by (uid=0)
May 25 06:25:01 ip-10-50-81-194 CRON[6385]: pam_unix(cron:session): session opened for user root by (uid=0)
May 25 06:29:44 ip-10-50-81-194 CRON[6385]: pam_unix(cron:session): session closed for user root
May 25 08:53:36 ip-10-50-81-194 sudo: nagios : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/opt/nagios-plugins/check_system_update.pl
尝试这个:
显示证明这一点的 cron 日志。
也许 cron 或系统在不同的时区运行?
为了弄清楚情况,我们实际上看到了显示作业在凌晨 2 点、上午 10 点等开始的图表。
在调查这个问题后,我们发现 cron 是用 启动的
TZ=UTC
,而/etc/timezone
设置为Europe/Zurich
。似乎 cron 是在/etc/timezone
contained的时候重新启动的UTC
,并且自从/etc/timezone
被更改后就再也没有重新启动过。结果,cron 不仅以 UTC 启动它的作业,它还以 UTC 登录,这导致
/var/log/auth.log
包含如下内容:由于 collectd 在 中正常运行
Europe/Zurich
,它显示从凌晨 2 点(UTC 午夜)、上午 10 点(UTC 上午 8 点)等开始的作业。传递 TZ 变量将始终使脚本在该时区运行,而不管您的系统本地时区如何。如果您不希望出现这种行为,请从该行中删除 TZ 变量。
* 代表 first-last 所以如果你像这样设置 cronjob
0 */2 * * * echo "runat midn, 2am, 4am ..., everyday"
应该是一样的
0 0-23/2 * * * echo "runat midn, 2am, 4am ..., everyday"
所以在你的示例工作中
0 0-23/8 * * * command
或者
0 */8 * * * command
应该在 0:00 8:00 16:00 运行...也许你的时间或时间设置有误。向我们展示您的 crontab -l 输出并检查您当前的时间和时区设置。