É difícil dizer por que às vezes funciona e às vezes não. Então, aqui estão algumas idéias que podem ou não ajudar.
Verifique se o seu script começa com
#!/bin/bash
e verifique se o script foi executado com o usuário correto: Isso fará com que o bash carregue o ambiente correto para esse usuário.
Se você quiser ter certeza, também é possível executar explicitamente bash
no seu crontab
e, em seguida, passar o script para ser executado com o argumento -c
.
Se isso não ajudar e você precisar de uma solução rápida, poderá optar por executar os comandos no script usando o caminho completo, para não precisar do PATH
correto.
Nota: Esta questão se encaixaria melhor na falha do servidor ou no Unix e no Linux.