Ao escrever um scrpit para o cron, há certas coisas que você deve lembrar:
- Nunca assuma que está sendo executado em qualquer lugar específico. Altere manualmente para um local predefinido (cd) com uma das suas primeiras operações ou sempre use caminhos absolutos para tudo . Isso inclui sua linha "source config.sh" - onde está esse arquivo config.sh ...?
- Pode não ter a mesma variável de ambiente PATH de quando você a executa manualmente. Se você fizer referência a qualquer coisa que não esteja nos locais binários do sistema padrão (/ bin / usr / bin), será necessário especificar manualmente uma variável PATH diferente ou, novamente, usar nomes de caminho absolutos completos para seus comandos. Isso inclui ainda / sbin e / usr / sbin - alguns sistemas não têm isso no PATH padrão para usuários não-root.
Para a depuração, certifique-se de que a variável MAILTO esteja definida no crontab para que saiba para onde enviar os relatórios de erro. Você também pode adicionar "-x" à sua linha de hashbang para mostrar todos os comandos no stdout à medida que eles são executados - o que o cron deve enviar para você.