Создайте задания cron, которые будут повторяться каждые X единиц времени, начиная с произвольной единицы.

Создайте задания cron, которые будут повторяться каждые X единиц времени, начиная с произвольной единицы.

У меня есть задание cron на CentOS, которое я хочу выполнять каждые 3 минуты, но у меня есть много других заданий cron, которые запускаются каждые 3 минуты, начиная с 0, 3, 6, 9...

Поэтому, чтобы избежать перегрузки сервера, я хотел, чтобы некоторые из моих cron-задач запускались каждые 3 минуты, но начинались с 1 минуты и так далее: 1, 4, 7...

Мои кроны обычно выглядят так:

*/3 * * * * 

Как я могу это сделать?

решение1

1-59/3 — более типичный и краткий способ обозначения, означающий «каждые 3 минуты, начиная с 1».

решение2

В дополнение к ответу heemayl вы можете перечислить нужные вам минуты, хотя это менее компактно и, вероятно, более подвержено ошибкам, чем существующий способ:

1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * some_command

решение3

Вы можете использовать sleep 60в качестве первой команды, чтобы команда, которую вы хотите запустить, фактически выполнилась через 1 минуту, при этом cronвремя сохранялось следующим образом */3:

*/3 * * * * sleep 60 && some_command

Связанный контент