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, а затем запустить ее и решить, будет ли она четной или нечетной. например:
источник
Многие кроны (вы не указали, что вы используете) поддерживают диапазоны. Так что-то вроде
Появится первая и третья среда месяца.
источник
-
или/
есть, вероятно, стоит прокомментировать, чтобы описать расписание)man 5 crontab
: « День выполнения команды может быть задан двумя полями - днем месяца и днем недели. Если оба поля ограничены (т. Е. Не *), команда будет запущена, когда любое из полей соответствует текущее время. Например, «30 4 1,15 * 5» приведет к выполнению команды в 4:30 утра 1-го и 15-го числа каждого месяца плюс каждую пятницу »(мой акцент).Для чего-то, что должно запускаться каждую вторую неделю, используйте эту строку:
Этот конкретный сценарий планируется запустить по пятницам. Неделя для выполнения может быть скорректирована с помощью «-eq 0» или «-eq 1»
источник
Анакрон - хороший способ обойти ограничения cron.
источник
Если ваши потребности не являются буквально раз в две недели, вы можете просто запустить cronjob 1-го и 15-го числа месяца:
Который работает в 8:15 утра первого и пятнадцатого числа каждого месяца независимо от дня недели.
источник
Исходя из этого объяснения, установка 3/2 в поле недели должна запускать задачу в каждую другую среду - это неявно, но я думаю выполнимо.
источник
for(int i=3; i <=3 ; i+=2) {}
он проходит через это только один раз, не имеет значения, является ли «шаг» 1 или 2.