我正在寻找一个包装命令(最好是 Python 中),它执行给定的命令并处理其输出(STDERR/STDOUT),类似于 cron:
- 如果没有输出(且返回代码为 0),则不执行任何操作
- 否则发送一封包含输出的电子邮件
我不需要连接外部服务器的能力,系统的邮件命令就足够了(我使用的是 Linux)。
我发现克隆包装但它的电子邮件太冗长了。还有克朗科特但它需要外部 SMTP 服务器(对我来说这并不总是一个选择)。
理想情况下,会有一个像 croncoat 这样的包装器,但支持命令mail
并具有可配置的电子邮件通知,所以我不必调整源代码。
(我认为这是一个重复的问题,但可能我只是使用了错误的搜索词。)
这可能是
答案1
你能只放置一个 shell 脚本/etc/cron.d/
吗?下面是一个示例(man 5 crontab
更多信息)。cron 作业将发送一封包含声明内容的电子邮件echo
。
如果您想制作自己的电子邮件(带有主题),最好在test_condition.sh
并确保守护进程看不到任何输出cron
。
# run shell script every 15 minutes to test something
*/15 * * * * root /root/test_condition.sh || echo "Script exited with status 1"
脚本/root/test_condition.sh
(请务必使用或类似工具进行保护chmod 0750
)
#!/bin/sh
# do things... test cron by exiting with 1. Comment out the next line to test mail
exit 1
# otherwise exit with a 0 and handle the email from here.
echo "I did some things. Things happened. Big things." | mail -s "Something happened" root@localhost
exit 0