A maior diferença aqui é que parece que estamos trabalhando em um tipo de sistema embarcado.
Se eu estiver lendo isso corretamente, é o script que parece estar truncado e não a saída (que pode então ser enviada por email). Eu vou atender a cada um.
Se for de fato o script, mas funcionar quando executado diretamente, sugiro o seguinte:
- O script é particularmente grande?
- O script apresenta recursos específicos do Bash ("bashisms") ... observe que / bin / sh pode - e geralmente é - diferente. Você pode gostar de definir SHELL = / bin / bash no seu crontab (se estiver disponível)
- Você está tentando escrever seu script no seu crontab ou está chamando um arquivo de script.
- O comportamento muda se você redirecionar ambos stdout e stderr para um arquivo em um sistema de arquivos com amplo espaço livre?
- Em casos como esse, acho útil criar uma entrada crontab temporária que chama o comando 'env' e redireciona a saída para um arquivo ou e-mail. Às vezes, isso pode mostrar diferenças inesperadas no ambiente (como configurações de localidade, que geralmente são diferentes).
- Você pode colocar um 'set -x' no seu arquivo de script. Isso fará com que ele envie informações de depuração à medida que o script prossiga. Você pode usar 'set + x' para desativá-lo. Isso é útil para determinar onde o script terminará a execução.
- Que tipo de software está sendo usado aqui:
- SMTP: qual é a saída de 'sendmail --version' ou 'sendmail -v'
Se, de fato, foi a saída, então devo dizer que o comportamento dependeria muito do MTA sendo usado. Em um ambiente integrado, ele pode exceder um determinado tamanho de buffer (talvez isso seja acionado pelo espaço disponível no sistema de arquivos).
Além disso, você verificou se há firmware atualizado: link O mais recente parece ser a versão 1.10 a partir de maio de 2012