Erros ao executar o cron: nodo # 10010 falhou com o status de saída 2: 1 Hora (s)

1

Nas últimas semanas, vi esse tipo de erro muitas vezes em meus servidores debian 6.

Eu já vi diferentes status de saída, 1, 2, 25, 255

 Errors when running cron:
grandchild #10010 failed with exit status 2: 1 Time(s)
grandchild #10042 failed with exit status 2: 1 Time(s)
grandchild #10062 failed with exit status 2: 1 Time(s)
grandchild #10080 failed with exit status 2: 1 Time(s)

ou

Errors when running cron:
grandchild #23015 failed with exit status 25: 1 Time(s)
grandchild #23115 failed with exit status 25: 1 Time(s)
grandchild #23223 failed with exit status 25: 1 Time(s)
grandchild #23319 failed with exit status 25: 1 Time(s)
grandchild #23432 failed with exit status 25: 1 Time(s)
grandchild #23510 failed with exit status 25: 1 Time(s)

olhando para o syslog, é assim:

Mar  6 06:41:01 myhost /USR/SBIN/CRON[10548]: (www-data) CMD (cd /home/httpd/cgi/inst && /usr/bin/perl /home/httpd/cgi/inst/scheduler.cgi > /dev/null
Mar  6 06:41:01 myhost /USR/SBIN/CRON[10546]: (CRON) error (grandchild #10548 failed with exit status 2)

Eu já vi isso em muitos servidores, com diferentes cronjobs, e ainda não descobri o que está acontecendo. então tenho duas perguntas:

  1. os códigos de status de saída, o que eles significam? (1, 2, 25 ou 255).
  2. o que posso fazer para testar isso ainda mais? Alguém já viu isso antes?

nota: sim eu pesquisei isso, mas não encontrei nenhuma solução que se encaixe no meu caso.

algumas dessas tarefas do cron apresentam erros como esse toda vez, outras fazem isso apenas de maneira local.

os trabalhos não são todos iguais, mas seriam parecidos com isto:

*/1 * * * * www-data cd /home/httpd/sites/cust/cgi/ && perl /home/httpd/sites/cust/mysoft/core/bin/scheduler.pl >> /home/httpd/sites/cyst/logs/scheduler_cron.log 2>&1

deixe-me saber se há mais alguma informação que eu possa lhe dar.

    
por Sverre 06.03.2015 / 08:31

1 resposta

1

Tente criar arquivos de script para suas tarefas em /usr/local ou /opt e chame aqueles com o cron.

Nos códigos de saída , parece que você conseguiu criar comandos inválidos em crontab . Alguns shell builtins (cd, source, etc.) podem não estar disponíveis. Eu prefiro criar scripts para comandos mais complexos para serem executados pelo cron. Isso os torna mais fáceis de testar também.

Por exemplo para a linha que você postou:

*/1 * * * * www-data /usr/local/sample-task.sh

/usr/local/sample-task.sh diz o seguinte:

#!/bin/bash
cd /home/httpd/sites/cust/cgi/
/usr/bin/perl /home/httpd/sites/cust/mysoft/core/bin/scheduler.pl >> /home/httpd/sites/cyst/logs/scheduler_cron.log 2>&1

Não se esqueça de executar chmod +x /usr/local/sample-task.sh .

Execute isto manualmente primeiro ( sudo -u www-data /usr/local/sample-task.sh ) para verificar se funciona, depois deixe o cron iniciá-lo.

    
por 09.03.2015 / 11:56