Чтобы запустить cron ночью в 4 часа ночи, мне нужно написать 4 * * * *
?
И чтобы запустить в 4 часа дня, это должно быть 16 * * * *
?
Нет. Это будет выполняться на 4-й и 16-й минутах каждого часа.
Вы ищете:
0 4,16 * * * command
Это будет работать в 4 утра и 4 вечера.
Или, если две команды разные:
0 4 * * * command
0 16 * * * another_command
В первом столбце задаются минуты. В этих примерах я устанавливаю значение 0, чтобы событие происходило в час.
В следующем столбце мы устанавливаем час, когда вы хотите, чтобы он работал. Мы используем абсолютные значения, но вы можете использовать */2
для «каждого часа» и т. Д.
В следующей колонке говорится, что мы хотим, чтобы это происходило каждый день месяца.
В следующем столбце указаны месяцы, в которые это должно срабатывать (все в этом случае).
В последнем столбце указано, в какие дни недели это разрешено запускать. 0-7 (где 0 и 7 - воскресенье). *
означает, что может срабатывать в любой день недели.
* * * * *
для каждого слота звездочки соответственно:
Таким образом, для каждодневных 4 утра и 4 вечера вы должны использовать:
0 4,16 * * *
Если вы оставите слот так же, как *
, это будет означать каждую итерацию этой единицы времени, то есть каждый час , ежедневно и т. д.
Здесь, часть 0 4,16
означает, что она будет работать в 0 минут 4 утра и 4 часа дня (то есть 4:00 утра и 4:00 вечера). Если вы хотите запустить его, скажем, 15 минут 4 утра и 4 вечера, вместо этого вы измените его на 15 4,16 * * *
(то есть 4:15 утра и 4:15 вечера).