Cron

為什麼 cron 即使重定向到 /dev/null 也不會停止發送電子郵件

  • January 27, 2019

我有一些 cron 任務,其中一些不會停止向我發送電子郵件。

一個範例任務是:

*/2 * * * * php 應用程序/控制台 mautic:email:fetch > /dev/null 2>&1

(所有有問題的任務都是mautic任務)。

我嘗試了一些避免電子郵件的技巧:

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

每次執行時,他們都會繼續發送郵件。

範例電子郵件:

/bin/sh: 1: 無法創建 1: 權限被拒絕

(我知道這是一個奇怪的錯誤,但這是一個例子。我知道我需要解決錯誤而不是讓它靜音,但我想知道為什麼我不能用普通方法讓它靜音)。

問題是:為什麼即使我重定向任務結果,或者使用 || true 更改任務結果,cron 繼續發送電子郵件?我能找到的唯一解決方案(關於連結的問題)是添加

郵件=“”

在“正常”(或非垃圾郵件)cron 任務之後(以及在這些其他任務之前)。

相關問題:如何將 cronjob 完全靜音到 /dev/null/?.

/bin/sh: 1: cannot create 1: Permission denied錯誤可能是因為您在重定向中有錯字。也許不是2>&1你有2>1or 2>1&。(通常,在您的主目錄中創建一個名為的文件的嘗試1會成功,但如果一個名為的文件1已經存在並且不可寫,那麼您將收到該錯誤。)

該錯誤未被消除的原因是該消息不是來自其輸出已被重定向的命令。在嘗試為命令設置重定向期間,shell 正在報告該消息。shell 本身的輸出沒有被重定向,因此消息由您收集cron並通過電子郵件發送給您。

引用自:https://unix.stackexchange.com/questions/496279