O crontab (5) define os seguintes campos:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
e explica:
Step values can be used in conjunction with ranges. Following a range with ``/<number>'' specifies skips of the number's value through the range. For example, ``0-23/2'' can be used in the hours field to specify command execution every other hour (the alternative in the V7 standard is ``0,2,4,6,8,10,12,14,16,18,20,22'').
Portanto, não há trabalhos quinzenais, no que diz respeito ao meu entendimento. Tenho certeza de que existem soluções alternativas, quais são as suas? Ou eu perdi alguma coisa?
Respostas:
Você pode executar o cron todas as quartas-feiras e depois decidir se é uma semana par ou uma semana ímpar. por exemplo:
fonte
Muitos crons (você não especificou qual você está usando) suportam intervalos. Então, algo como
Atingiria a primeira e terceira quartas-feiras do mês.
fonte
-
ou/
envolvido, provavelmente vale a pena comentar para descrever a programação)man 5 crontab
: " O dia da execução de um comando pode ser especificado por dois campos - dia do mês e dia da semana. Se os dois campos forem restritos (por exemplo, não são *), o comando será executado quando um dos campos corresponder ao Por exemplo, "30 4 1,15 * 5" faria com que um comando fosse executado às 4h30 do dia 1 e 15 de cada mês, além de toda sexta-feira "(grifo meu).Para algo que precisa ser executado a cada duas semanas, use esta lista:
Esse script específico está programado para ser executado às sextas-feiras. A semana a ser executada pode ser ajustada usando "-eq 0" ou "-eq 1"
fonte
O Anacron é uma boa solução alternativa para as limitações do cron.
fonte
Se suas necessidades não forem literalmente quinzenais, você poderá simplesmente executar o cronjob nos dias 1 e 15 do mês:
Que funciona às 8h15 no primeiro e no décimo quinto de cada mês, independentemente do dia da semana.
fonte
A partir dessa explicação, a configuração 3/2 no campo da semana deve executar a tarefa em todas as quartas-feiras - está implícita, mas acho que é possível.
fonte
for(int i=3; i <=3 ; i+=2) {}
uma vez que só está passando por isso uma vez, não importa se o "passo" é 1 ou 2.