每小时执行一次的 crontab 计划

每小时执行一次的 crontab 计划

当每小时安排一项工作时x,如何判断选择哪些小时?

例如,我们设置了一个 cronjob,*/8它在凌晨 2 点、上午 10 点等运行,而不是午夜、上午 8 点等运行。

答案1

显示可以证明这一点的 cron 日志。

也许 cron 或系统在不同的时区运行?

答案2

尝试这个:

0 2-18/8 * * * /path/to/your/script

答案3

为了澄清情况,我们实际上看到了图表表明工作于凌晨 2 点、上午 10 点等开始。

调查该问题后,我们发现 cron 以 启动TZ=UTC,而/etc/timezone设置为。似乎 cron 在包含Europe/Zurich时重新启动,并且自从更改后从未重新启动过。/etc/timezoneUTC/etc/timezone

因此,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

由于 collectd 在 中正常运行Europe/Zurich,它显示从凌晨 2 点(UTC 午夜)、上午 10 点(UTC 上午 8 点)等开始的任务。

答案4

* 代表第一个-最后一个,所以如果你设置 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 输出并检查您当前的时间和时区设置。

相关内容