如何檢測和清理垃圾日誌文件?
我們的一台 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
這應該可以解決以後的日誌問題。
至於為什麼會發生這種情況,我不知道,也不容易弄清楚。是的,損壞的文件可能是垃圾。你可以試試這個乾淨的石板。