10

Как я могу остановить cron отправлять мне по электронной почте результаты заданий, которые я планирую?

3 ответа3

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
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

... хотя игнорирование сообщений об ошибках, как правило, плохая идея! (Как вы узнаете, когда работа cron будет прервана?)

Вы можете перенаправить вывод конкретной команды из stderr в stdout, используя 2>&1 - например:

command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout

... затем направить стандартный stdout в /dev/null в задании cron - таким образом вы отключите громкую команду, не теряя сообщений об ошибках

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .