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 № 1A 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.