如何设置cron作业每5天运行一次?

Mic*_*hal 3 arrays cron

我想设置cronjob,例如今天开始,它将每5天运行一次。这就是我现在所拥有的,这可以正常工作吗?如果我在5点钟安装此作业,然后每5天安装6点。

0 6 * / 5 * * mailx -r root@mail.com -s“邮件标题” -c“ cc@mail.com” primary@mail.com <body.txt

小智 11

请耐心等待,这是我第一次发布答案......如果我有什么不清楚的地方,请告诉我。

我不认为你有你需要的东西:

0 0 */5 * * ## <<< WARNING!!! CAUSES UNEVEN INTERVALS AT END OF MONTH!!
Run Code Online (Sandbox Code Playgroud)

不幸的是, */5 是根据月份中的某天设置间隔。请参阅:此处的解释。在月底有保证的经常性问题。

1st  at 2019-01-01 00:00:00
then at 2019-01-06 00:00:00 << 5 days, etc. OK
then at 2019-01-11 00:00:00
...
then at 2019-01-26 00:00:00
then at 2019-01-31 00:00:00
then at 2019-02-01 00:00:00 << 1 day WRONG
then at 2019-02-06 00:00:00
...
then at 2019-02-26 00:00:00
then at 2019-03-01 00:00:00 << 3 days WRONG
Run Code Online (Sandbox Code Playgroud)

根据这篇文章,您需要向正在执行的命令添加一些模数运算,以获得“每 N 天”的 TRUE。例如:

0 0 * * *  bash -c '(( $(date +\%s) / 86400 \% 5 == 0 )) && runmyjob.sh
Run Code Online (Sandbox Code Playgroud)

在此示例中,作业将在每天上午 12:00 进行检查,但仅在自 01-01-1970 模 5 以来的天数为 0 时才会执行。

如果您希望从特定日期开始每 5 天发送一次,请使用以下格式:

0 0 * * *  bash -c '(( $(date +\%s -d "2019-01-01") / 86400 \% 5 == 0 )) && runmyjob.sh
Run Code Online (Sandbox Code Playgroud)


Yog*_*h_D 6

0 0 */5 * *  midnight every 5 days.
Run Code Online (Sandbox Code Playgroud)

看到这个,每3天问一次类似的问题。 每三天进行一次Cron工作