【问题标题】:What are options available to get cron's results and how to set them up?有哪些选项可用于获取 cron 的结果以及如何设置它们?
【发布时间】:2010-09-07 18:51:28
【问题描述】:

我知道默认 cron 的行为是将正常和错误输出发送到 cron 的所有者本地邮箱。

是否有其他方法可以获得这些结果(例如通过电子邮件将其发送给一群人,将它们存储在某个地方等等)?

【问题讨论】:

    标签: linux unix batch-file cron


    【解决方案1】:

    要将输出通过电子邮件发送到不同的电子邮件地址,只需添加该行

    MAILTO="user@example.com"
    

    到命令前的crontab

    【讨论】:

    • 这不需要设置邮件服务器和其他各种工作吗?
    【解决方案2】:

    对于 stdout 和 stderr,您可以将文件重定向到显示的命令或 crontab 中的实际命令 - 例如 command > /tmp/log.txt 2>&1

    如果您希望多个用户接收此日​​志,您可以在 cron 文件的顶部插入 MAILTO=nameofmailinglist

    【讨论】:

      【解决方案3】:

      cron 行就像任何其他 unix 命令行一样,因此您可以将输出重定向到另一个程序。即。

      * * * * * /path/my/command > /my/email/script 2&>1
      

      【讨论】:

      • 我想你的意思是 |而不是>。使用 > 会将输出写入文件。
      【解决方案4】:

      这可能是不必要的添加,但要限定重定向命令:

      > 重定向标准输出

      2 是 Bourne shell 特定术语,表示标准错误

      1 是 Bourne shell 特有的术语,表示标准输出

      2>&1 表示将标准错误重定向到标准输出

      另见下面有用的文章Standard Input and Output Redirection

      【讨论】:

      • 2 和 1 不仅仅是 Bourne shell 特有的。
      • 实际上是 2>&1 表示在标准输出上重复标准错误。这就是为什么 "2>&1 > my_file" 给出的结果与 "> my_file 2>&1" 截然不同的原因
      【解决方案5】:

      据我所知,您有三个选择:

      1. 重定向输出:可以是一个文件,也可以是一个程序,通过电子邮件发送你想要的结果
      2. 在 cron 中使用 MAILTO,并将电子邮件重定向到所有 cron 作业的任何其他单个地址。
      3. 在 cron 发送后,在您的邮件服务器或客户端中进行重定向。

      【讨论】:

        猜你喜欢
        • 2014-06-25
        • 2016-07-06
        • 1970-01-01
        • 2013-08-30
        • 2018-03-09
        • 2022-10-25
        • 1970-01-01
        • 1970-01-01
        • 2010-11-19
        相关资源
        最近更新 更多