PROGRAMANTE DE PERL CRON: Comece na hora x, execute a cada ano Y para sempre
Pergunta
Estou usando Perl Cron e quero fazer uma regra como esta
execute a cada xx min/horas começando em yy: aa (até o fim dos tempos)
Como eu colocaria isso em uma corda Cron? Perl: Cron parece usar a mesma sintaxe que o cron regular, para que uma corda cron regular deve funcionar
Tia!
Solução
A resposta curta é que você precisará escrever isso sozinho ou encontrar um pacote de terceiros diferentes, devido aos seus requisitos. Há duas coisas que você está pedindo para que Cron não faça:
Corra a cada x minutos.
Diga que você quer correr a cada 40 minutos e você escreve isso
*/40 * * * *
. Na verdade, isso funciona a cada 60 minutos às 1:40, 2:40, etc.Inicie/pare no tempo y/z.
Simplesmente não há sintaxe de cron para isso. Você pode usar mais alguns cronjobs para adicionar/remover o cronjob principal nos horários especificados, mas isso cheira muito com o código auto-modificador. Dada a complexidade (leia -se: falta de confiabilidade), provavelmente é melhor encontrar um sistema diferente.
Outras dicas
Você pode especificar intervalos com uma barra. Aqui estão a cada 5 minutos:
*/5 * * * *
Isso ocorre a cada 2 horas:
0 */2 * * *
Você não pode dar um horário de início/ término em Cron.