격주 cronjob을 예약하는 방법?

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


답변

많은 크론 (사용중인 것을 지정하지 않은)이 범위를 지원합니다. 그래서 같은

0 0 1-7,15-21 * 3

매월 첫째, 셋째 주 수요일을 맞았습니다.


답변

격주로 실행해야하는 무언가를 위해이 1 강선을 사용하십시오 :

0 0 * * 5 [ `expr \`date +\%V\` \% 2` -eq 0 ] && echo "execute script"

이 특정 스크립트는 금요일에 실행되도록 예약되어 있습니다. 실행할주는 “-eq 0″또는 “-eq 1″을 사용하여 조정할 수 있습니다.


답변

Anacron 은 cron의 한계에 대한 좋은 해결 방법입니다.

  • Anacron에는 반복 기간 매개 변수가 있으며이를 14로 설정할 수 있습니다.

기간 지연 작업 식별자 명령

14 15 test.daily /path/to/script.sh


답변

2 주에 한 번만 필요한 것이 아니라면 매월 1 일과 15 일에 크론 작업을 실행할 수 있습니다.

15 8 1,15 * * /your/script.sh

요일에 관계없이 매월 1 일과 15 일 오전 8시 15 분에 실행됩니다.


답변

그 주에서 3/2의 설명 설정에서 다른 모든 수요일에 작업을 실행해야합니다. 내재적이지만 가능하다고 생각합니다.


답변