Cron

atcron 作業的輸出到哪裡去了?

  • December 8, 2021

如果沒有螢幕可以顯示,標準輸出atcron任務會去哪裡?

它沒有出現在作業開始的目錄中,也沒有出現在我的主目錄中。

鑑於我不知道如何調試或跟踪後台作業,我怎麼能真正弄清楚這一點?

從 cron 手冊頁:

執行命令時,任何輸出都會郵寄給 crontab 的所有者(或者發送給 crontab 中 MAILTO 環境變數中指定的使用者,如果存在的話)。執行這些程序的 cron 的子副本將其名稱強制為大寫,這將在 syslog 和 ps 輸出中看到。

所以你應該檢查你/root 的郵件,或者係統日誌(例如/var/log/syslog)。

對於長時間執行的程序,有時在收到電子郵件之前知道輸出是什麼很有用,我使用它來代替:

  1. 用於ps查找正在執行的程序的程序 ID(PID 如下);
  2. 用於lsof查找正在寫入輸出的文件:
lsof -p PID

在輸出中,查找列標題下的1u2u行。FD

這些行將告訴您程序輸出在通過郵件發送之前將進入哪些臨時文件。通常,對於at,文件位於/var/spool/cron/atjobs/. 最後,顯示該文件,您將找到程序的(目前)輸出。

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