Как поручить cron выполнять работу каждую вторую неделю? - PullRequest
53 голосов
/ 08 декабря 2008

Я бы хотел запустить задание через cron, которое будет выполняться каждый второй вторник в указанное время дня. Для каждого вторника это просто:

0 6 * * Tue

Но как сделать это "каждый второй вторник" (или, если хотите, каждую вторую неделю)? Я не хотел бы реализовывать какую-либо логику в самом скрипте, но оставляю определение только в cron.

Ответы [ 11 ]

0 голосов
/ 05 февраля 2013

Как насчет каждой третьей недели?

Вот мое предложение:

0 6 * * Tue expr `date +\%W` \% 3 == 0 > /dev/null || /scripts/fortnightly.sh

... или ...

0 6 * * Tue expr `date +\%W` \% 3 == 1 > /dev/null || /scripts/fortnightly.sh

... или конечно ...

0 6 * * Tue expr `date +\%W` \% 3 == 2 > /dev/null || /scripts/fortnightly.sh

... в зависимости от ротации недели.

...