
我有一個 cron 作業,我想記錄輸出。 cron 檔案 ( crontab -e
) 是:
0 7 * * * node $HOME/server/task.js >> $HOME/server/log.txt
cron 任務稱為:
$ grep CRON /var/log/syslog
Nov 4 07:00:01 ip-... CRON[0000]: (bitnami) CMD (node $HOME/server/task.js >> $HOME/server/task.txt)
Nov 4 07:00:01 ip-... CRON[0000]: (CRON) info (No MTA installed, discarding output)
有錯誤的行意味著我沒有安裝電子郵件,但我也不想。
當 NodeJS 任務的第一行使用 時,輸出檔案為空console.log()
。
我確認 cron 作業沒有運行。
如何調試錯誤、運行 cron 並將結果保存到文件中?
答案1
預設情況下,cron 作業的輸出會郵寄給您正在執行腳本的用戶,原因是您有未安裝 MTA因為您的系統上沒有安裝任何郵件代理程式。
您的腳本確實正在執行,如係統日誌第一行所示。這裡的問題在於未重定向到標準輸出的輸出。
所以試著編輯你的 cron 作業:
0 7 * * * node $HOME/server/task.js >> $HOME/server/log.txt 2>&1