AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 499397
Accepted
Milliways
Milliways
Asked: 2019-02-08 20:00:29 +0800 CST2019-02-08 20:00:29 +0800 CST 2019-02-08 20:00:29 +0800 CST

防止 cron 发送错误消息

  • 772

我已将 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 任务中的错误消息,以防止它产生错误。

cron ssmtp
  • 2 2 个回答
  • 562 Views

2 个回答

  • Voted
  1. Best Answer
    Haxiel
    2019-02-08T20:57:17+08:002019-02-08T20:57:17+08:00

    从crontab 手册:

    除了 LOGNAME、HOME 和 SHELL,如果在“this”crontab 中运行命令,cron(8) 有任何理由发送邮件,它还会查看 MAILTO。如果 MAILTO 已定义(且非空),则将邮件发送给如此命名的用户。如果 MAILTO 已定义但为空 (MAILTO=""),则不会发送任何邮件。否则,邮件将发送给 crontab 的所有者。

    只需将变量添加到 crontab 文件的顶部,如本示例所示(取自同一手册页,为清楚起见稍作编辑):

    # mail any output to 'paul', no matter whose crontab this is
    MAILTO=paul
    # run five minutes after midnight, every day
    5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
    
    • 1
  2. Paul_Pedant
    2019-12-20T10:09:24+08:002019-12-20T10:09:24+08:00

    只有当命令“泄漏”输出到 stdout 或 stderr 时,Cron 才会发送电子邮件。

    您可以在 cron 命令行或脚本本身中将整个脚本包装成一个带有重定向的块:

    { myMain; } >/dev/null 2>&1  #.. to discard all output.
    
    { myMain; } >>myCron.log 2>&1  #.. to have somewhere to check fails.
    

    设置 MAILTO="" 适用于所有 cron 作业。重定向允许您获得不同的结果,并将日志与不同的文件相关联。

    • 0

相关问题

  • 如果 anacron 不是守护进程,它是如何工作的?

  • Cron 作业未按预期工作

  • Cron */6 小时但有偏移量?

  • 如何恢复已删除的 crontab

  • Auto-SSH 手动工作,但不在后台工作

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve