При выполнении скриптов через cron по расписанию - в виду отсутствия терминала - демон cron по-умолчанию вываливает сообщения, печатаемые скриптами и программами в обычный вывод (т.е. сообщения с stdout и stderr) на электронную почту пользователя, из-под которого запускается данная задача.
Например, у Вас в файле crontab задан запуск скрипта. А этот скрипт в процессе своей работы выводит строчку "All Okay :)". Что Вы думаете произойдет? Просто ничего никуда не пропечатается? Как бы ни так - демон cron увидит это сообщение и отправит его по электронной почте. Кому? Пользователю, из-под которого запускается этот скрипт.
Это хорошо, если данное сообщение символизирует возникнование какой-то ошибки. Однако что, если это не так и сообщения - просто информационные. Получаем медленно, но уверенно засираемую почту локального пользователя (чаще всего - root, т.к. львиная часть скриптов запускается из-под него).
Ниже приведены пара советов - как выключить эти уведомления.
Способ 1 - вырубаем всеВ данном случае выключены будут все уведомления на электронную почту - вне зависимости от выполняемых скриптов.
В файл /etc/crontab добавьте строчку:
MAILTO=""
Способ 2 - вырубаем для определенных скриптов
* * * * * root /home/myuser/myscript.sh >/dev/null 2>/dev/null
Здесь мы указали для определенного задания cron дополнительные указатели:
- >/dev/null : Весь вывод stdout скрипта перенаправлять в null - т.е. не печатать
- 2>/dev/null : Так-же весь вывод stderr переводить в null - т.е. не печатать
Вот так можно переубедить cron сорить на мыло.
Комментарии
Оставить комментарий
Операционная система LINUX
Термины: Операционная система LINUX