Como ativar este crontab?

3

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)
    
por YumYumYum 28.11.2011 / 15:18

2 respostas

2

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 ;).

    
por arrange 28.11.2011 / 15:41
3

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).

    
por hggdh 28.11.2011 / 20:39

Tags