sleep
não aceita o argumento entre parênteses (como em C), então deve ser
* * * * * sleep 10; /var/tmp/myscript.sh
Sempre teste os comandos no shell do sistema antes de alimentá-lo com cron
;).
Eu tenho uma configuração como abaixo, mas nunca é executada.
$ chmod +x /var/tmp/myscript.sh
$ vim /var/tmp/crontab.sh;
* * * * * sleep(10); /var/tmp/myscript.sh
$ crontab /var/tmp/crontab.sh
Agora, notei que não está funcionando. O que estou fazendo errado?
$ grep CRON /var/log/syslog
Nov 28 15:20:01 sun CRON[1768]: (sun) CMD (sleep(10);/var/tmp/myscript.sh)
Nov 28 15:20:01 sun CRON[1766]: (CRON) error (grandchild #1768 failed with exit status 2)
Nov 28 15:20:01 sun CRON[1766]: (CRON) info (No MTA installed, discarding output)
Acompanhamento:
$ vim /var/tmp/crontab.sh
* * * * * sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1
$ tail -f /var/log/syslog | grep CRON
Nov 28 15:50:02 sun CRON[2301]: (sun) CMD (sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1)
Nov 28 15:51:01 sun CRON[2312]: (sun) CMD (sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1)
sleep
não aceita o argumento entre parênteses (como em C), então deve ser
* * * * * sleep 10; /var/tmp/myscript.sh
Sempre teste os comandos no shell do sistema antes de alimentá-lo com cron
;).
Na verdade, a melhor maneira de usar o crontab é usando o próprio crontab:
crontab -l # list entradas atuais do crontab
crontab -e # edita a tabela cron
Assim que terminar de editar o crontab (via 'crontab -e'), ele será ativado e disparará o que quer que tenha sido definido sempre que foi configurado para disparar.
Observe que a máquina deve estar em execução para que o crontab funcione. Se você quer algo mais flexível, você pode olhar para anacron (8).