Самая большая разница здесь заключается в том, что мы работаем над своего рода встроенной системой.
Если я правильно читаю, это будет сценарий, который будет казаться усеченным, а не вывод (который затем может быть отправлен по почте). Я буду угождать каждому.
Если это на самом деле скрипт, но он работает при непосредственном запуске, то я бы предложил следующее:
- Сценарий особенно большой?
- Есть ли в скрипте какие-либо специфичные для Bash функции ("bashisms")... обратите внимание, что /bin /sh может - и часто отличается - другим. Вы можете установить SHELL = /bin /bash в вашем crontab (если это доступно)
- Вы пытаетесь написать свой скрипт в вашем crontab или вы вызываете файл скрипта.
- Изменится ли поведение, если вы перенаправите как stdout, так и stderr в файл в файловой системе с достаточным свободным пространством?
- В подобных случаях я считаю полезным создать временную запись в crontab, которая вызывает команду 'env' и перенаправляет вывод в файл или электронную почту. Иногда это может показать неожиданные различия в среде (например, настройки локали, которые часто различаются).
- Вы можете поместить 'set -x' в ваш файл скрипта. Это приведет к выводу отладочной информации по мере выполнения скрипта. Вы можете использовать 'set +x', чтобы отключить его. Это полезно при определении того, где завершится выполнение скрипта.
- Какое программное обеспечение используется здесь:
- SMTP: что выдает «sendmail --version» или «sendmail -v»
Если на самом деле это был вывод, то я должен сказать, что поведение будет очень сильно зависеть от используемого MTA. Во встроенной среде он может превышать определенный размер буфера (возможно, это будет зависеть от доступного пространства в файловой системе).
Кроме того, вы проверили наличие обновленной прошивки: http://support.dlink.com/ProductInfo.aspx?m=DNS-323 Последняя версия - версия 1.10 от мая 2012 г.