Logging

Cron 不會在 Ubuntu 上立即寫入日誌

  • May 24, 2018

我通過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

引用自:https://serverfault.com/questions/913637