通过电子邮件发送外壳脚本的输出

时间:2020-10-27 23:30:32

标签: bash shell email

我有一个shell脚本(script.sh),其中运行了一个简单的python web scraper

python3 script.py

当我在cron作业中运行此Shell脚本时,如果出现问题,我希望收到电子邮件通知。我在stackoverflow上找到了此代码,并将其放在.sh脚本的底部:

./script.sh 2>&1 | tee output.txt | mail -s "Script log" email@address.com

问题在于脚本现在似乎正在循环;在这里只需要几秒钟,现在需要几分钟,我的邮箱中收到10到20封电子邮件。这些电子邮件的内容不同,大多数情况下电子邮件为空,但有时它们包含以下消息:

./script.sh: 4: ./script.sh: Cannot fork 

或:

mail: Null message body; hope that's ok 

我不确定这里出了什么问题。我该怎么做才能解决此问题?

1 个答案:

答案 0 :(得分:1)

该脚本运行,运行python,然后再次调用自身,直到资源用尽并且无法派生。

.sh应该包含:

python3 script.py 2>&1 | tee output.txt | mail -s "Script log" email@address.com

假设您实际上要在pwd所在的任何文件夹中创建output.txt ...否则,您可以完全忽略它。

或者,您可以仅在crontab中配置MAILTO(请参见https://www.cyberciti.biz/faq/linux-unix-crontab-change-mailto-settings/

相关问题