Cronjob 條目中的「/dev/null 2>&1」是什麼意思?

Cronjob 條目中的「/dev/null 2>&1」是什麼意思?

有人可以向我解釋一下下面的 cron 作業中「2>&1」的意思是什麼嗎

0 23 * * * wget -q -O /dev/null "https://example.com/index.php" > /dev/null 2>&1

答案1

這意味著stderr2- 包含來自執行的命令或腳本的錯誤訊息)被重定向(>&)到stdout1- 命令的輸出),並且後者被重定向到/dev/null(空設備)。

透過這種方式,您可以抑制執行命令可能發出的所有訊息。在 cron 中,這樣做通常是為了避免收到來自服務腳本的大量不相關訊息的垃圾郵件。不過,請務必小心,因為某些訊息可能很重要。

有關輸出重定向的更多資訊可以在 Linux 文件專案中找到這裡這裡。空設備描述這裡

答案2

我只是想稍微擴展一下@digijay 的答案,解釋一下不是“什麼> /dev/null 2>&1“ 但 ”為什麼它在那裡」。

1.Cron 操作將適當的資料寫入不同的系統檔案。例如,記錄 cron 錯誤的熱門目的地包括/var/log/cron,/var/log/messages/var/log/syslog.

2.預設情況下,cron 作業會向執行 cronjob 的使用者帳戶發送一封電子郵件。

所以,為了避免這樣的情況12(您既不想看到任何訊息/錯誤日誌,也不想從 cron 收到任何電子郵件,您只想讓 cron 安靜地工作),您應該將stderr和重定向stdout/dev/null.

相關內容