Сегодня 1 ноября 2016 года или (однозначно) цифрами, 2016-11-01.
У меня есть задание cron для пользователя, настроенное следующим образом:
# m h dom mon dow command
33 3 1 */2 * /home/user/...
Предполагается, что он будет запускаться раз в два месяца в первое число месяца в 3:33 утра, независимо от того, какой это день недели, но по какой-то причине он запускался сегодня, хотя 11 не делится на 2.
Кто-нибудь может мне это объяснить? Мое предположение о делимости на 2 неверно?
РЕДАКТИРОВАТЬ: я забыл упомянуть, я бегу cron
версия «3.0pl1-127 + deb8u1» на машине Debian 8.6 «Jessie».
В /
не является арифметическим выражением, вместо этого оно описывает «значения шага» по разрешается диапазон значений. Итак, поскольку месяцы всегда начинаются с 1
вместо того 0
, /2
будет означать «принять любое другое значение», что приведет к (1, 3, 5, 7, 9, 11).
Это также описано на странице руководства, хотя это не так уж и ясно и понятно:
Значения шагов можно использовать вместе с диапазонами. После диапазона с "<число>" указывается пропуск значения числа в диапазоне. Например, «0–23 / 2» можно использовать в поле часов, чтобы указать выполнение команды каждый второй час (альтернатива в стандарте V7 - «0,2,4,6,8,10,12,14,16 , 18,20,22 "). Шаги также разрешены после звездочки, поэтому, если вы хотите сказать «каждые два часа», просто используйте «* / 2».
Сегодня первый день ноября.
* / 2 означает, что ваша cronjob будет выполняться раз в два месяца, как вы сказали.
Таким образом, в следующем месяце (декабре) cronjob не будет выполняться, но будет выполнен месяц (январь) после него.
За месяц до этого месяца (октябрь) задание cron не было выполнено. Но в сентябре это было.