Cron
為什麼 cron 即使重定向到 /dev/null 也不會停止發送電子郵件
我有一些 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 任務之後(以及在這些其他任務之前)。
該
/bin/sh: 1: cannot create 1: Permission denied
錯誤可能是因為您在重定向中有錯字。也許不是2>&1
你有2>1
or2>1&
。(通常,在您的主目錄中創建一個名為的文件的嘗試1
會成功,但如果一個名為的文件1
已經存在並且不可寫,那麼您將收到該錯誤。)該錯誤未被消除的原因是該消息不是來自其輸出已被重定向的命令。在嘗試為命令設置重定向期間,shell 正在報告該消息。shell 本身的輸出沒有被重定向,因此消息由您收集
cron
並通過電子郵件發送給您。