user1929905 Asked: 2022-02-02 08:34:35 +0800 CST2022-02-02 08:34:35 +0800 CST 2022-02-02 08:34:35 +0800 CST 特定选项的 crontab 调度 772 我需要添加一个每季度运行一次的 crontab 条目,在第二个星期日凌晨 2 点。 以下哪个是正确的?操作系统是 AIX。 00 02 8-14 */3 0 && /myscript.sh 或者 00 02 8-14 */3 * [ "$(date '+\%a')" == "Sun" ] && /myscript.sh aix cron 1 个回答 Voted Best Answer Paul_Pedant 2022-02-02T08:59:51+08:002022-02-02T08:59:51+08:00 分钟、小时和月份是正确的。 星期几和每月几日之间存在交互作用。您的第一个版本将在每天 8 日至 14 日以及每个星期日运行(但如果 11 日是星期日,则不会运行两次)。 来自man -s 5 crontab: 注意:命令执行的日期可以由两个字段指定 - 月中的日和周中的日。如果两个字段都受限制(即不是 *),则当任一字段与当前时间匹配时,将运行该命令。 您的第二个版本可能有两个问题: (1) 它可以由 /bin/sh 或 crontab 中指定的某个 shell 运行。我不确定它的便携==性如何。 (2) “Sun”是特定于语言环境的。 我可能会用 回避这些[ "$( date '+\%u')" -eq 7 ],但会用评论来解释。 这导致 00 02 8-14 1,4,7,10 * [ "$(date '+\%u')" -eq 7 ] && /myscript.sh
分钟、小时和月份是正确的。
星期几和每月几日之间存在交互作用。您的第一个版本将在每天 8 日至 14 日以及每个星期日运行(但如果 11 日是星期日,则不会运行两次)。
来自
man -s 5 crontab
:您的第二个版本可能有两个问题:
(1) 它可以由 /bin/sh 或 crontab 中指定的某个 shell 运行。我不确定它的便携
==
性如何。(2) “Sun”是特定于语言环境的。
我可能会用 回避这些
[ "$( date '+\%u')" -eq 7 ]
,但会用评论来解释。这导致