有哪些选项可用于获取 cron 的结果以及如何设置它们?
-
09-06-2019 - |
题
我知道默认 cron 的行为是将正常和错误输出发送到 cron 所有者的本地电子邮箱。
是否有其他方法来获取这些结果(例如通过电子邮件将其发送给一群人,将它们存储在某个地方等等)?
解决方案
对于 stdout 和 stderr,您可以将文件重定向到显示的命令或 crontab 中的实际命令 - 就像 command > /tmp/log.txt 2>&1
.
如果您希望多个用户接收此日志,您可以插入 MAILTO=nameofmailinglist
在 cron 文件的顶部。
其他提示
要将输出通过电子邮件发送到不同的电子邮件地址,只需添加以下行
MAILTO="user@example.com"
到命令之前的 crontab
cron 行就像任何其他 unix 命令行一样,因此您可以将输出重定向到另一个程序。IE。
* * * * * /path/my/command > /my/email/script 2&>1
这可能是不必要的添加,但为了限定重定向命令:
> 重定向标准输出
2 是 Bourne shell 特定术语,表示标准错误
1 是 Bourne shell 特定术语,表示标准输出
2>&1 表示将标准错误重定向到标准输出
另请参阅以下有用的文章 标准输入和输出重定向
据我所知,你有三个选择:
- 重定向输出:要么是一个文件,要么是一个程序,它将根据您的需要通过电子邮件发送结果
- 在 cron 中使用 MAILTO,并将电子邮件重定向到所有 cron 作业的任何其他单一地址。
- 在 cron 发送邮件后,在邮件服务器或客户端中进行重定向。
不隶属于 StackOverflow