Установка MAILTO=user@example.org
в /etc/cron.daily/foo
не працює. Вихід сценарію не надсилається на адресу user@example.org.
Сторінка за адресою http://www.unixgeeks.org/security/newbie/unix/cron-1.html також пропонує просте рішення:
Зараз файл /etc/cron.daily/foo
містить таке:
#!/bin/sh
/usr/bin/script 2>&1 | mailx -s "$0" stefanl@example.org
Це надішле електронний лист на адресу "stefanl@example.org" з темою, яка дорівнює повному шляху сценарію (наприклад /etc/cron.daily/foo
).
Ось що говорить Unixgeeks.org про це:
Вихід з крона
Як я вже говорив раніше, вихід з cron надсилається по електронній пошті власнику процесу або людині, вказаній у змінній MAILTO, але що робити, якщо ви цього не хочете? Якщо ви хочете відправити висновок комусь іншому, ви можете просто передати висновок командної пошти. напр
cmd | користувач пошти "Тема пошти" користувача
Іноді я хочу отримувати лише помилки від cronjob, а не stdout, тому я використовую цей трюк. Синтаксис може здатися неправильним на перший погляд, але будьте впевнені, він працює. Наступна cronjob відправить STDOUT в / dev / null, а потім обробляє STDERR по конвеєру.
doit 2>&1 >/dev/null | mailx -s "$0" stefanl@example.org
Те саме, але надіслати в syslog:
doit 2>&1 >/dev/null | /usr/bin/logger -t $ME
Також дивіться мою відповідь на сервер ServerFault до Cronjob stderr, щоб подати та надіслати електронною поштою
/etc/crontab
не вказує значення за замовчуванням.