Cron

如何安排每兩週一次的 cronjob?

  • April 6, 2021

crontab(5) 定義了以下欄位:

      field         allowed values
      -----         --------------
      minute        0-59
      hour          0-23
      day of month  1-31
      month         1-12 (or names, see below)
      day of week   0-7 (0 or 7 is Sun, or use names)

並解釋說:

 Step values can be used in conjunction with ranges.  Following a range
 with ``/<number>'' specifies skips of the number's value through the
 range.  For example, ``0-23/2'' can be used in the hours field to specify
 command execution every other hour (the alternative in the V7 standard is
 ``0,2,4,6,8,10,12,14,16,18,20,22'').

因此,據我所知,沒有雙周刊的賈伯斯。我很確定有解決方法,你的是什麼?還是我錯過了什麼?

您可以讓 cron 每個星期三執行這個東西,然後讓這個東西執行決定它是偶數週還是奇數週。例如:

#!/bin/bash
week=$(date +%U)
if [ $(($week % 2)) == 0 ]; then 
   echo even week
else 
   echo odd week
fi

許多 crons(您沒有指定您正在使用的)支持範圍。所以像

0 0 1-7,15-21 * 3

將在本月的第一個和第三個星期三舉行。

注意:不要將它與vixie cron(包含在 RedHat 和 SLES 發行版中)一起使用,因為它會在日期和星期幾欄位之間生成or而不是**and

引用自:https://serverfault.com/questions/404398