Перестаньте мені cron надсилати електронні листи


10

Як я можу відмовити Cron надсилати мені електронні листи про результати роботи, яку я розкладаю?

Відповіді:


15

Встановивши змінну середовища "MAILTO" як ""

Щось таке:

SHELL=/bin/bash
MAILTO=



01 * * * *  /your/path/to/script/here.sh

12

Якщо ви хочете, щоб одна робота припинила електронну пошту, просто додайте до неї / / dev / null 2> & 1

Наприклад:

0 * * * * /home/script >/dev/null 2>&1

1
Якщо ви впевнені, що один запуск закінчиться до наступного запуску, може бути варто перенаправити вихід на названий файл, а не на / dev / null: це дає можливість перевірити, що сталося з останнім запуском, якщо ви підозрюєте про проблема.
мас

4

Cron тільки листи вам , якщо є вихід, або на stdoutабо stderr.

Якщо це сценарій, який ви написали, зробіть його менш багатослівним - видаліть непотрібні echoчи printзаяви. Перенаправлення stdoutна /dev/nullтакож є дійсним рішенням:

2 * * * * /my/script > /dev/null

Якщо після цього ви все ще отримуєте повідомлення, тоді вихід увімкнено stderr, таким чином, це повинна бути помилка, яку ви повинні вирішити .. Якщо ні, ви можете переспрямувати stderrна /dev/null..

2 * * * * /my/script > /dev/null 2> /dev/null

..багато ігнорування повідомлень про помилки, як правило, погана ідея! (Як ви дізнаєтесь, коли робота зламується?

Ви можете перенаправити висновок певної команди з stderr на stdout за допомогою 2>&1- наприклад:

command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout

..напряміть stdoutдо /dev/nullсвоєї роботи з хроном - таким чином ви замовкнете гучну команду, не втрачаючи повідомлень про помилки

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.