Logging
Cron 不會在 Ubuntu 上立即寫入日誌
我通過
cron
. 該腳本從一開始就包含許多列印語句(第一行是列印)。但是,即使腳本正在執行,也會創建日誌文件但仍為空白。這是我的 crontab:
00 14 * * * python DE.py >> DElog.log 2>&1
有人知道為什麼嗎?
耐心是一種美德。
對於初學者來說,首先創建日誌文件,甚至在腳本開始執行和生成輸出之前。
其次,在 Linux 上,當標準輸出被重定向到 TTY(終端視窗)以外的東西時,預設情況下輸出將被完全緩衝,而不是行緩衝。
因為您還將標準錯誤重定向到標準輸出(使用
2>&1
),所以不會將輸出寫入磁碟,直到:
- 您的腳本完成
或
- 輸出超過預設緩衝區大小(4k?)。
您可以調整緩衝
stdbuff
並使錯誤和輸出模式無緩衝:stdbuf -o0 -e0 python DE.py >> DElog.log 2>&1