我已将 cron 设置为每 15 分钟为用户 pi 运行一个任务(在我的 Raspberry Pi 上运行 Raspbian Stretch)。
6,21,36,51 * * * * /usr/bin/mosquitto_sub -h Pi3Plus.local -v -C 1 -t weather >> weather.log
我还设置了 ssmtp 以通过 gmail 发送电子邮件。
cron 任务经常无法连接到服务器,并生成错误消息。
问题是它然后尝试向用户 pi 发送一条消息,该 ssmtp 更改为 pi@gmail 并发送到 gmail,但它失败了。
我已经阅读了 ssmtp、ssmtp.conf、cron、crontab 的手册,但找不到任何东西来阻止这些消息。
我可以编写一个脚本来捕获 cron 任务中的错误消息,以防止它产生错误。
从crontab 手册:
只需将变量添加到 crontab 文件的顶部,如本示例所示(取自同一手册页,为清楚起见稍作编辑):
只有当命令“泄漏”输出到 stdout 或 stderr 时,Cron 才会发送电子邮件。
您可以在 cron 命令行或脚本本身中将整个脚本包装成一个带有重定向的块:
设置 MAILTO="" 适用于所有 cron 作业。重定向允许您获得不同的结果,并将日志与不同的文件相关联。