O trabalho Cron não está em execução?


24

Eu tenho um arquivo crontab que se parece com isso:

* * * * * /home/abliskovs/update/update.sh

No entanto, quando verifico o syslog em busca de evidências de que o trabalho foi executado, não há nada que possa indicar que ele já foi executado. Como posso verificar se está em execução?

crontab -l gera o seguinte:

* * * * * /home/abliskovs/update/update.sh


OK, eu fiz isso.
Alex Bliskovsky

Talvez uma pergunta idiota, mas isso já aconteceu comigo antes, então vou perguntar de qualquer maneira. Certifique-se de que o cron daemon esteja realmente em execução! : P Segundo palpite são as permissões, verifique se é executável pelo usuário executando o cronjob.
Mattias Ahnberg 19/01/12

Respostas:


21

Adicione um >> / tmp / testlog.log ao final da sua entrada crontab (para redirecionar a saída para um arquivo que você pode investigar ou verificar se está em execução, além disso, 2> & 1 incluiria a saída do console de erros)

Exemplo

0 * * * * /home/abliskovs/update/update.sh 2> & 1 /tmp/testlog.log

Verifique também o seguinte:

  • Adicione cronjobs da maneira correta. se você usou o crontab -e em sua própria conta, os scripts são executados com o usuário (e, portanto, a entrada do crontab possui um campo a menos - o usuário para executá-lo, como é conhecido). Se você simplesmente copiasse seu snippet acima para /etc/cron.d, ele falharia porque você não especificou um usuário (ou melhor, porque não encontra nenhum usuário chamado "bash").
  • Verifique se o arquivo de script é executável, caso contrário, ele não será executado.
  • Recarregue o serviço sudo cron jobs reload ou reinicie o serviço cronsudo /etc/init.d/cron restart

Como tornar um arquivo executável?

Várias maneiras de tornar seu arquivo executável

chmod +x /home/abliskovs/update/update.sh 

chmod -R 0755 /home/abliskovs/update/update.sh

chmod a+x /home/abliskovs/update/update.sh

3

Certifique-se de que o arquivo de script seja executável {chmod 755}, caso contrário ele não será executado


2
Para tornar um arquivo executável, você também pode executarchmod +x filename
Stefano Palazzo

0

O script shell update.shprovavelmente contém erros, por exemplo, alguns comandos que não podem ser executados porque o comando não pode ser encontrado. Nesse caso, pode ser útil adicionar o caminho ao seu comando na variável PATH ou adicioná-lo diretamente à frente do seu comando. Também ajuda a especificar o endereço de e-mail MAILTO, e-mails que resultam da execução de Cronjobs são enviados para esse endereço

PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain 

Você também pode verificar se há erros mailna caixa de correio local e no arquivo syslog /var/log/syslog. Consulte também esta pergunta relacionada, por que cronjobs pode não funcionar .


0

Eu tive o mesmo problema e a causa para mim foi que o crontab não estava sendo executado porque não tinha permissão para isso. Mudei o arquivo e o coloquei em /tmpt/output.log

*/5 * * * * /usr/bin/php /home/ubuntu/app/artisan cmd:process-order > /tmp/queue.output

Deixe-me saber se isso funciona para você.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.