Procurando executar um script na primeira segunda-feira do mês, depois um script diferente na primeira quarta-feira do mês.
A questão é que, se um novo mês começar em uma terça-feira, por exemplo, a ação "primeira quarta-feira do mês" será a primeira. Eu gostaria de ter isso configurado para que a ação "primeira quarta-feira do mês" ocorra apenas se for seguida de uma segunda-feira dentro desse mês.
A lógica pode ser usada para descobrir isso de uma perspectiva de script, mas o problema é que eu preciso disso em uma expressão cron, pois essa é a única maneira de agendar isso no sistema que estou usando (requer uma expressão cron para agendamento avançado , e detalhes deste sistema não são relevantes para esta questão).
Edit: Não há dependência ou relacionamento entre os scripts mencionados acima sendo executados pelo cron. Para simplificar a pergunta, eles seriam simplesmente dois cronjobs separados no mesmo crontab.
Para executar um comando na primeira segunda-feira de um mês, sugiro esta
crontab
linha, inicialmente:Como o dia da semana do dia do 8º mês é definitivamente o mesmo do dia do 1º mês, espera-se que uma
crontab
linha especificando os primeiros sete dias do mês e a segunda-feira atinja a intenção inicial, não é?Infelizmente, essa
crontab
linha está errada. Na verdade, okachow
script seria executado todos os dias nos primeiros sete dias de cada mês e também todas as segundas-feiras.crontab
usa umaOR
lógica para combinar dias do mês e dias da semana. Acrontab (5)
página de manual fornece a seguinte nota:A lógica também precisa ser definida na parte de comando da
crontab
linha para restringir a execução do comando à primeira segunda-feira do mês. Portanto, qualquer uma das seguintes linhas funcionará conforme o esperado:Da mesma forma, um script que deve ser executado na primeira quarta-feira de um mês somente se seguir uma segunda-feira do mesmo mês pode ser agendado por uma das
crontab
linhas abaixo. Acredito que os 8º e 9º dias do mês devem ser excluídos da lógica; caso contrário,woof-woof
o script seria executado inesperadamente na segunda quarta-feira do mês.