Na verdade, o cron está pronto para produção. Tem sido testado em batalha tantas vezes que é difícil acusá-lo de mau funcionamento. O que você pode estar enfrentando é problemas resultantes de erros simples. Ajudaria muito se você especificasse quais são os seus problemas com o cron, exatamente.
Como já foi apontado pelo gaueth, você pode acrescentar >> /tmp/somefile 2>&1
ao seu comando no crontab. O que isto faz é:
-
>> /tmp/somefile
significa 'acrescentar o fluxo stdout do comando ao / tmp / somefile'. Isso simplesmente grava tudo o que teria sido impresso em seu terminal no arquivo especificado. Observe o uso de>>
(anexar) em vez de>
(sobrescrever). -
2>&1
significa 'enviar stderr para stdout'. Em termos humanos: escreva a saída de quaisquer erros no mesmo local onde você escreve a saída padrão (explicada acima)
Usando isso, você terá um registro completo do que aconteceu depois que o cron executou seu script. Por favor, note que pode ser uma boa idéia fazer o script imprimir a data atual (assim como algumas outras coisas, talvez) para que você tenha esses dados no arquivo de log.
Outra coisa a ter em conta é a variável PATH
. O Cron é executado em um ambiente ligeiramente diferente da sua sessão de terminal interativa, por isso, geralmente é uma boa idéia incluir a saída de echo $PATH
no próprio script ou na linha crontab, assim: */20 * * * * export PATH=<paste output of echo $PATH here>; <command>
.