我有一个每周脚本,该脚本由 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 电子邮件客户端版本
安装 mutt
sudo apt-get install mutt
创建 mailbck.sh 并粘贴以下行http://pastebin.ubuntu.com/5965821/
使其可执行
chmod +x mailbck.sh
适应您的需求