cron job

8

Gostaria de iniciar o cron job às 9:30 e, em seguida, trabalhar a cada 5 minutos e depois parar às 16:30 todos os dias. Esse tipo de agendamento é possível em um ou preciso de dois trabalhos cron?

mustafa
fonte

Respostas:

10

Eu acho que algo como:

30/5 9-16 * * *  /usr/bin/script_to_run.sh

Veja a página wiki para detalhes da sintaxe de tempo. Sugiro testar isso com um script que registra o tempo em que é executado em um arquivo.

#!/bin/bash

echo "Cron ran at: " `date` >> /var/log/crontimetest.log
webtoe
fonte
2
Fiquei surpreso ao ver "30/5" usado, então observei o código-fonte do cron, especificamente entry.c, que analisa cada linha de um crontab. na função get_range (), verifica se o caractere após o primeiro número (30 neste exemplo) é um '-' ou não. caso contrário, o '/' nunca é visto. isso é um bug; deveria ter impresso um aviso (ou uma mensagem de erro) do formulário, "'/' só é significativo após um intervalo * ou nm". desculpe pessoal!
Paul Vixie
7

você precisará de três entradas do crontab:

30-55/5 9 * * * /usr/bin/script-to-run.sh
*/5 10-15 * * * /usr/bin/script-to-run.sh
0-30/5 16 * * * /usr/bin/script-to-run.sh

por favor, não culpe linux, ou bsd, ou eu, pela sintaxe bizarra e inútil das entradas do crontab. isso foi inventado na AT&T Bell Labs e posteriormente padronizado como parte do POSIX.

Paul Vixie
fonte
4

Eu acho que você precisa de três empregos:

 */5 10-15 * * * yourjob
 0,5,10,15,20,25,30 16 * * * yourjob
 30,35,40,45,50,55 9 * * * yourjob
Sven
fonte