"Funciona manualmente, falha no cron" é quase sempre devido a um destes:
- diferenças nas variáveis de ambiente:
PATH
e outras; - diretório de trabalho atual diferente;
- falta de um TTY (provavelmente não é um problema em esperar scripts);
- permissões (teste interativo com um usuário, cron job com outro); ou
- shell diferente: comandos executados dentro da própria linha de comando do cron usam um shell, você pode estar usando interativamente outro.