為什麼 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 繼續發送電子郵件?我能找到的唯一解決方案(在連結的問題上)是添加

郵件地址=“”

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

相關問題:如何讓 /dev/null/ 的 cronjob 完全靜音?

答案1

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

該錯誤未被消除的原因是該訊息不是來自輸出已重定向的命令。 shell 在嘗試為命令設定重定向時報告該訊息。 shell 本身的輸出尚未重定向,因此該訊息將由您收集cron並透過電子郵件發送給您。

相關內容