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
Попадут в первую и третью среду месяца.
Для чего-то, что нужно запускать раз в две недели, используйте этот однострочник:
0 0 * * 5 [ `expr \`date +\%V\` \% 2` -eq 0 ] && echo "execute script"
Этот конкретный сценарий планируется запускать по пятницам. Неделю, которую нужно выполнить, можно настроить с помощью "-eq 0" или "-eq 1".
Если ваши потребности не раз в две недели, вы можете просто запустить cronjob 1-го и 15-го числа месяца:
15 8 1,15 * * /your/script.sh
Который работает в 8:15 утра первого и пятнадцатого числа каждого месяца независимо от дня недели.
Анакрон - хороший способ обойти ограничения cron.
команда идентификатора задания задержки периода
14 15 test.daily /path/to/script.sh
Из этого объяснения параметр 3/2 в поле недели должен запускать задачу каждую вторую среду - это неявно, но я думаю, выполнимо.