通过电子邮件发送命令输出的包装器(如 cron)

通过电子邮件发送命令输出的包装器(如 cron)

我正在寻找一个包装命令(最好是 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

相关内容