3

Я создал задание cron, которое запускает скрипт оболочки. Мне бы хотелось, чтобы скрипт оболочки запускался, захватывал его результаты и получал его по электронной почте после завершения. Вот что у меня пока, но тело почтового сообщения пусто.

Я пробовал все следующее:

/root/myscript.sh | tee output.txt | mail -s "Email subject" me@mymail.com

/root/myscript.sh | tee output.txt | mail -s "Email subject" me@mymail.com &> /dev/null

/root/myscript.sh | tee output.txt && mail -s "Email subject" me@mymail.com < output.txt &> /dev/null

/root/myscript.sh > tee output.txt && mail -s "Email subject" me@mymail.com < output.txt &> /dev/null

Все они работают правильно, но они создают электронное письмо с пустым телом. Выполнение сценария производит вывод на стандартный вывод.

1 ответ1

5

Наиболее вероятная причина потери текста на экране при перенаправлении заключается в том, что вывод был отправлен на стандартное устройство с ошибкой. Это будет подтверждено, если output.txt пуст после выполнения команды.

Чтобы перенаправить как стандартную ошибку, так и стандартный вывод, вам нужно добавить 2>&1 к вашим командам, как в:

/root/myscript.sh 2>&1 | tee output.txt | mail -s "Email subject" me@mymail.com

Затем вы должны увидеть весь вывод вашего скрипта в output.txt .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .