Почему cron не прекращает отправку писем, даже перенаправляя их на /dev/null

Почему cron не прекращает отправку писем, даже перенаправляя их на /dev/null

У меня есть несколько задач cron, и некоторые из них не перестают отправлять мне электронные письма.

Примеры задач:

*/2 * * * * php приложение/консоль mautic:email:fetch > /dev/null 2>&1

(Все задачи с этой проблемой являются математическими задачами).

Я попробовал несколько приемов, чтобы избегать электронных писем:

> /dev/null
>/dev/null
>/dev/null 2>&1
>/dev/null 2>&1 || true
|| true

Все они продолжают отправлять письма каждый раз.

Пример электронного письма:

/bin/sh: 1: невозможно создать 1: Отказано в доступе

(Я понимаю, что это странная ошибка, но это пример. Я знаю, что мне нужно устранить ошибку, а не заглушить ее, но я хочу знать, почему я не могу заглушить ее обычным способом).

Вопрос: Почему даже когда я перенаправляю результат задачи или когда использую || true для изменения результата задачи, cron продолжает отправлять письма? Единственное решение, которое я могу найти (по связанному вопросу), это добавить

MAILTO=""

после «нормальных» (или не спамящих) задач cron (и перед этими другими).

Сопутствующий вопрос:Как полностью отключить cronjob на /dev/null/?.

решение1

Ошибка /bin/sh: 1: cannot create 1: Permission denied, вероятно, вызвана опечаткой в ​​перенаправлении. Возможно, вместо у 2>&1вас есть 2>1или 2>1&. (Обычно попытка создать файл с именем 1в вашем домашнем каталоге будет успешной, но если файл с именем 1уже существует и недоступен для записи, то вы получите эту ошибку.)

Причина, по которой эта ошибка не заглушается, заключается в том, что сообщение не исходит от команды, вывод которой был перенаправлен. Сообщение сообщается оболочкой во время попытки настроить перенаправление для команды. Вывод самой оболочки не был перенаправлен, поэтому сообщение собирается cronи отправляется вам по электронной почте.

Связанный контент