Como faço para o meu crontab do sistema buscar uma URL e enviá-la por e-mail para mim?

1

Estou executando o Ubuntu 12.04 com o módulo Apache. Eu abri o crontab executando vi /etc/crontab

Ele diz no topo que diferente de qualquer outro crontab você não precisa executar o comando 'crontab' para instalar a nova versão . Então eu não tenho que executar crontab crontab? Mesmo que eu esteja tentando executá-lo, recebo o erro

crontab: No such file or directory

Eu adicionei isso ao arquivo crontab (existem 4 trabalhos padrão lá):

*/1 * * * * root http://www.mywebsite.com/crondemo.php

Este arquivo deve me enviar um e-mail a cada minuto. O script em si funciona bem, mas o trabalho nunca é executado e nunca recebo um email.

    
por erdomester 11.07.2013 / 20:37

1 resposta

1

Uma entrada crontab deve ser um comando shell executável. Uma URL não é um comando shell executável. Tente */1 * * * * root wget -q -O- http://www.mywebsite.com/crondemo.php em vez disso. wget é um comando que busca uma URL. -q diz ao wget para não imprimir o progresso, e -O- diz para ele enviar a URL buscada para o stdout, que o cron irá enviar por e-mail.

Se você deseja receber e-mails do cron, certifique-se de definir MAILTO corretamente acima do job relevante em seu crontab e certifique-se de que o seu sistema MTA esteja funcionando. Você pode usar o comando mail para testar isso.

O conteúdo de /var/log/syslog também pode ajudá-lo a diagnosticar problemas do cron, já que o cron registrará tentativas de execução lá mesmo que não seja possível enviar por e-mail (desde que seu crontab esteja instalado e forneça corretamente um agendamento de trabalho).

Finalmente, o comentário está correto. Como uma exceção, as alterações em /etc/crontab são selecionadas automaticamente.

    
por Robie Basak 11.07.2013 / 21:07