Crie tarefas cron para repetir cada X unidades de tempo iniciando em uma unidade arbitrária

6

Eu tenho um cron job no CentOS que quero executar a cada 3 minutos, mas tenho muitos outros cronjobs que são executados a cada 3 minutos, começando em 0, 3, 6, 9 ...

Então, para evitar que meu servidor fique muito sobrecarregado, eu queria que alguns dos meus crons funcionassem a cada 3 minutos, mas começando em 1 minuto e assim por diante: 1, 4, 7 ...

Meus crons são geralmente assim:

*/3 * * * * 

Como posso fazer isso?

    
por Samul 31.10.2015 / 15:01

3 respostas

17

1-59 / 3 é a maneira mais típica e concisa de especificá-lo, significando "a cada 3 minutos a partir de 1".

    
por 31.10.2015 / 18:55
7

Além da resposta do heemayl, você poderia listar os minutos que deseja, embora seja menos compacto e provavelmente mais propenso a erros do que o modo existente:

1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * some_command
    
por 31.10.2015 / 15:19
3

Você pode usar sleep 60 como o primeiro comando para que o comando que você deseja executar seja realmente executado após 1 minuto, mantendo o tempo cron como */3 :

*/3 * * * * sleep 60 && some_command
    
por 31.10.2015 / 15:13

Tags