Cron
at
和 cron
作業的輸出到哪裡去了?
如果沒有螢幕可以顯示,標準輸出
at
和cron
任務會去哪裡?它沒有出現在作業開始的目錄中,也沒有出現在我的主目錄中。
鑑於我不知道如何調試或跟踪後台作業,我怎麼能真正弄清楚這一點?
從 cron 手冊頁:
執行命令時,任何輸出都會郵寄給 crontab 的所有者(或者發送給 crontab 中 MAILTO 環境變數中指定的使用者,如果存在的話)。執行這些程序的 cron 的子副本將其名稱強制為大寫,這將在 syslog 和 ps 輸出中看到。
所以你應該檢查你/root 的郵件,或者係統日誌(例如/var/log/syslog)。
對於長時間執行的程序,有時在收到電子郵件之前知道輸出是什麼很有用,我使用它來代替:
- 用於
ps
查找正在執行的程序的程序 ID(PID
如下);- 用於
lsof
查找正在寫入輸出的文件:lsof -p PID
在輸出中,查找列標題下的
1u
和2u
行。FD
這些行將告訴您程序輸出在通過郵件發送之前將進入哪些臨時文件。通常,對於
at
,文件位於/var/spool/cron/atjobs/
. 最後,顯示該文件,您將找到程序的(目前)輸出。