Eu ainda não sei por que meus trabalhos em /etc/cron.hourly não funcionam. Mas eu consegui agendá-los de forma alternativa, adicionando-os manualmente com o comando crontab -e
.
Foi-me dito que para obter um cron job em execução por hora, basta colocar um script de shell em /etc/cron.hourly
Então, tentei adicionar
#!/usr/bin/env sh
firefox www.superuser.com
Em um arquivo test.sh
e colocando-o no diretório /etc/cron.hourly/
. Então eu chown
to root e chmod +x
nele. Faz como esperado se eu o executar diretamente. Mas não é executado automaticamente, a cada hora ... o que estou perdendo?
editar: Eu mudei o script para algo mais simples, apenas
#!/usr/bin/env sh
echo foo > ~/sandpit/bar.txt
Então eu esperei uma hora, estas são as últimas 4 linhas no final do meu /var/log/syslog
Nov 1 18:45:01 wim-ubuntu ntpdate[1719]: adjust time server 91.189.94.4 offset -0.149832 sec
Nov 1 18:46:27 wim-ubuntu kernel: [ 106.562460] exe (2058): /proc/2058/oom_adj is deprecated, please use /proc/2058/oom_score_adj instead.
Nov 1 19:17:01 wim-ubuntu CRON[4204]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Nov 1 20:17:01 wim-ubuntu CRON[4793]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mas meu arquivo não está sendo criado, então acho que meu cron job ainda não está funcionando.
edit2:
Eu removi as extensões, agora eu tenho os scripts realmente encontrados pelo cron. Mas eles estão falhando por razões desconhecidas (detalhes abaixo)
wim@wim-ubuntu:/etc/cron.hourly$ ll
total 28
drwxr-xr-x 2 root root 4096 2011-11-02 01:32 ./
drwxr-xr-x 150 root root 12288 2011-11-02 01:58 ../
-rw-r--r-- 1 root root 102 2011-09-20 10:04 .placeholder
-rwxr-xr-x 1 root root 49 2011-11-01 19:00 test*
-rwxr-xr-x 1 root root 48 2011-11-01 19:23 test2*
wim@wim-ubuntu:/etc/cron.hourly$ run-parts --test /etc/cron.hourly
/etc/cron.hourly/test
/etc/cron.hourly/test2
wim@wim-ubuntu:/etc/cron.hourly$ date
Wed Nov 2 02:25:39 EST 2011
wim@wim-ubuntu:/etc/cron.hourly$ cat test
#!/usr/bin/env sh
firefox www.stackoverflow.com
wim@wim-ubuntu:/etc/cron.hourly$ cat test2
#!/usr/bin/env sh
echo foo > ~/sandpit/bar.txt
wim@wim-ubuntu:/etc/cron.hourly$ tail -4 /var/log/syslog
Nov 2 02:01:33 wim-ubuntu AptDaemon: INFO: Quitting was requested
Nov 2 02:17:01 wim-ubuntu CRON[8249]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Nov 2 02:17:01 wim-ubuntu CRON[8248]: (CRON) error (grandchild #8249 failed with exit status 1)
Nov 2 02:17:01 wim-ubuntu CRON[8248]: (CRON) info (No MTA installed, discarding output)
Algumas versões do cron não executam scripts com extensões de nome de arquivo, portanto, tente renomear o script (por exemplo: teste mv test.sh).
Provavelmente, você pode verificar o cron que será executado usando este teste (na verdade, ele não executa os arquivos):
run-parts --test /etc/cron.hourly
Tags cron