/ / Como usar o Linux Crontab para executar duas tarefas em dias alternativos? - linux, crontab

Como usar o Linux Crontab para executar duas tarefas em dias alternativos? - linux, crontab

Eu quero fazer isso:

Execute a tarefa A hoje às 6h e, depois, a cada dois dias.

Execute a Tarefa B amanhã às 6:00 da manhã e a cada dois dias depois disso.

Respostas:

0 para resposta № 1

A solução normal para ter um cron trabalho executado a cada dois dias estaria usando */2 no campo dos dias, mas isso não suporta dias alternados.

Você provavelmente teria que fazer uma lista de dias:

0 6 */2 * * #Job to execute every even numbered day
0 6 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 * * #Job to execute every odd numbered day

Note que isso não será perfeito em meses que terminam com um número ímpar de dias, já que terminará executando o segundo trabalho duas vezes seguidas, no dia 31 e no primeiro.

Vale a pena olhar para man crontab no seu sistema também. Alguns crons suporte a formas mais complexas de agendamento, como dependências (aguarde até que este trabalho termine, espere outras X horas e execute este outro trabalho) que pode ser útil para você.


0 para resposta № 2

Você poderia usar date %s para determinar se é um dia "ímpar" ou um dia "par" em um calendário em execução livre de limites de anos e meses feitos pelo homem. Por exemplo:

$ [ $(( `date +%s` / 86400 % 2 )) -eq 0 ] && echo A || echo B

E dirija a tarefa A ou a tarefa B assim.