У меня есть еженедельный скрипт, который запускает cron, чтобы сделать снимок zfs. Мне было интересно, можно ли отправить по почте письмо OK, если задание выполнено правильно, и сообщение об ошибке, если что-то произошло, и в содержании письма должен быть журнал задания. Как это сделать?
25 11 * * 5 /home/aegrimisu/ZFS-autosnapshot.sh>>/home/aegrimisu/ZFS-WeeklySnapShot.log 2>&1 | mail -s "ZFS SnapShot Status" mymail@yahoo.com
Содержание сценария:
#!/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`
2>&1
говорит оболочке перенаправлять стандартную ошибку на стандартный вывод. Без него вы все равно получили бы электронные письма, если скрипт напечатал что-нибудь со стандартной ошибкой.
Эта строка из вашего скрипта 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" mymail@yahoo.com
как crontab, если вы хотите получить ошибка по электронной почте.
Вариант с Почтовым клиентом дурака
Дурак установки
sudo apt-get install mutt
Создайте mailbck.sh и вставьте строки из http://pastebin.ubuntu.com/5965821/
Сделайте это исполняемым файлом
chmod +x mailbck.sh
Адаптируйте его к своим потребностям