使用 Cron 通过作业发送邮件日志

使用 Cron 通过作业发送邮件日志

我有一个每周脚本,该脚本由 cron 运行以制作 zfs 快照。我想知道是否可以在作业正确运行的情况下发送 OK 邮件,在发生某些事情时发送错误邮件,并在邮件内容中包含作业日志。如何做到这一点?

25 11 * * 5 /home/aegrimisu/ZFS-autosnapshot.sh>>/home/aegrimisu/ZFS-WeeklySnapShot.log 2>&1 | mail -s "ZFS SnapShot Status" [email protected]

脚本内容为:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
zfs snapshot Misu@Misu-`date +%Y.%m.%d-%H:%m:%S`

答案1

2>&1告诉 shell 将标准错误重定向到标准输出。如果没有它,如果脚本在标准错误上打印了任何内容,您仍然会收到电子邮件。

脚本中的这一行ZFS-autosnapshot.sh

zfs snapshot Misu@Misu-`date +%Y.%m.%d-%H:%m:%S`

最有可能的是会出现错误,因此您必须使用:

25 11 * * 5 /home/aegrimisu/ZFS-autosnapshot.sh>>/home/aegrimisu/ZFS-WeeklySnapShot.log \
            | mail -s "ZFS SnapShot Status" [email protected]

如果您想通过电子邮件接收错误,请将其设置为 crontab。

答案2

Mutt 电子邮件客户端版本

  1. 安装 mutt

    sudo apt-get install mutt

  2. 创建 mailbck.sh 并粘贴以下行http://pastebin.ubuntu.com/5965821/

  3. 使其可执行

    chmod +x mailbck.sh

  4. 适应您的需求

相关内容