Crontab 每周跳过 运行 一次

Crontab skip run once a week

我有一个 CRON 表达式,从 00:00 开始,每 8 小时 运行 一个给定的命令。

0 0,8,16 * * * 

这将 运行 每周给予 21 次推荐,但是,我的目标是每周跳过这 21 运行 中的一个 .什么是 跳过 每周日第一个 运行 00:00 的正确 CRON 表达式(换句话说,一个将 运行 20每周几次)?

设为 2 行:

0 0,8,16 * * 0-5 从周日到周五,每周的第 0 点、8 点和 16 点后的第 0 分钟。

0 8,16 * * 6 星期六 8 点和 16 点后第 0 分钟。

您可以更改要跳过的日期和时间,但据我所知,没有办法在 1 行中执行此操作。

将此:[[ ( $( date +\%u ) -ne 0 ) && ( $( date +\%H:\%M) != "00:00" ) ]] && 放在您的命令之前。

如果您不想将 bash 用于您的 cron-job,这适用于 sh:

[  $( date +\%u ) -ne 0  ] && [ $( date +\%H:\%M) != "00:00"  ] &&