Algumas coisas para tentar.
-
! / bin / sh -xv
- Tente redirecionar stderr com dois maiores que os sinais, 2 > > & 1;
O primeiro fornecerá o resultado passo-a-passo do seu script. Eu tentaria primeiro sem redirecionar o stderr para o seu arquivo de log. O Cron deve enviar-lhe uma cópia da saída. Você pode ver exatamente onde isso está errado.
O segundo. Talvez você tenha um erro que está atingindo sua stdout? (Provavelmente não, funciona como você tem no CentOS 6.5.)
Você também pode verificar caracteres não imprimíveis usando cat.
cat -vet /etc/cron.hourly/mail.cron
Ainda outra coisa a tentar é usar caminhos absolutos para seus comandos, / bin / echo em vez de echo, / bin / date em vez de data, / bin / hostname em vez de hostname. (ymmv) Jim está absolutamente correto no cron nem sempre usa o ambiente exato como o mesmo usuário interativo.