Systemd-Journald

如何檢測和清理垃圾日誌文件?

  • November 21, 2020

我們的一台 Ubuntu 18.04 主機被擷取了 12 GB 的*.journal文件,遠遠超出預期。試圖找出它們是否值得保留,我跑了

journalctl --file $f

在比今天更早的每個文件上;這總是導致要麼Failed to open files--- No entries ---

我是否正確得出這樣的結論是垃圾文件並且可以丟棄?

如果是,它們為什麼存在?清理它們的受支持方法是什麼?定期檢查系統是否存在是否值得?

首先,Journal 是一個日誌系統,是systemd. 當您需要知道發生了什麼時,它們的存在至關重要。

如此處所述,journalctl --file不是那麼有用。

由於期刊文件會定期輪換,因此此表單實際上不能用於查看完整的期刊。

現在,您是否認為這些文件無用,由您決定。通常,太舊的日誌不值得保留,您可以刪除它們。

要做到這一點,最好使用journalctl它自己和它的實用真空。例如,您可以使用

sudo journalctl --vacuum-time=3weeks

刪除所有超過 3 週的日誌文件。

有關更多資訊,請查看帶有man journalctl.

–vacuum-size=, –vacuum-time=, –vacuum-files=

刪除最舊的歸檔日誌文件,直到它們使用的磁碟空間低於指定大小(使用通常的“K”、“M”、“G”和“T”後綴指定),或所有歸檔日誌文件不包含早於指定的時間跨度(用通常的“s”、“m”、“h”、“days”、“months”、“weeks”和“years”後綴指定),或不超過指定數量的單獨日誌文件剩餘. 請注意,執行 –vacuum-size= 僅對 –disk-usage 顯示的輸出產生間接影響,因為後者包括活動的日誌文件,而清理操作僅對存檔的日誌文件進行操作。同樣, –vacuum-files= 實際上可能不會將日誌文件的數量減少到指定數量以下,

另外,我不認為定期檢查是值得的。您可以做的最好的事情是通過取消註釋並更改以下內容來設置上限/etc/systemd/journald.conf

例如:

SystemMaxUse=4G

然後重啟服務。sudo systemctl restart systemd-journald.

使用man journald.conf以獲取更多資訊。


編輯

正如@reinierpost 所解釋的那樣

這個問題不是關於正常的舊日誌,而是關於似乎根本不包含任何日誌的舊日誌文件(但它們每個仍然佔用 8 MB)。

嘗試執行journalctl --verify。如果文件未通過,則日誌已損壞,您應該重新啟動服務。

sudo systemctl restart systemd-journald

這應該可以解決以後的日誌問題。

至於為什麼會發生這種情況,我不知道,也不容易弄清楚。是的,損壞的文件可能是垃圾。你可以試試這個乾淨的石板。

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