Por que o trabalho não é duvidoso quando configurado como uma tarefa cron?

2

Eu tenho um problema com um cron job que inicia, mas não é concluído. Executar o comando manualmente funciona bem. Eu já li a página sobre problemas e soluções cron aqui no AskUbuntu, tentei propostas de soluções, mas não encontrei resposta trabalhando no meu caso.

Estou usando o Ubuntu 12.04.

$ crontab -e

SHELL=/bin/bash # otherwise it would be /bin/sh
59 16 * * * /bin/duply calendar backup > /tmp/duply.log

Btw, o arquivo cron termina com uma linha vazia, como alguém apontou.

Quando o trabalho tiver "concluído" ...:

$ cat /tmp/duply.log 
Start duply v1.5.7, time is 2012-06-22 16:59:01.

Em vez disso, executando manualmente o script, ele funciona corretamente e fornece essa saída:

Start duply v1.5.7, time is 2012-06-22 17:06:39.

[cut]
... here is a long output generated by duply.
... and yes, files have been backed up.
[cut]

--- Finished state OK at 17:06:42.581 - Runtime 00:00:03.170 ---

Eu também tentei reiniciar o daemon do cron ( sudo service cron restart ), mas nada mudou.

Você tem alguma sugestão para corrigir o problema?

    
por Paolo 22.06.2012 / 17:17

1 resposta

1

Assim, com base nos comentários, segue a resposta à minha própria pergunta.

Log de erros

Um primeiro passo útil (essencial) foi obter um log de erros.

A sintaxe para obter uma é:

/bin/duply calendar backup > /tmp/duply.log 2> /tmp/duply.error.log

Causa

Felizmente, os arquivos de log apontaram o motivo:

  

duplicidade ausente. instalado e disponível no caminho?

Então eu adicionei ao arquivo cron o mesmo valor PATH que eu tenho na sessão shell e o problema desapareceu. Não achei necessário adicionar PATH ao arquivo crontab porque PATH durante a tarefa cron é /usr/bin:/bin e duply reside em /bin .

Agora o arquivo crontab começa com:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin‌​:/bin:/usr/games
    
por Paolo 24.07.2017 / 14:02