精品軟體與實用教程
大半夜的網站突然打不開了,Nginx提示502錯誤,重新啟動伺服器後,網站又恢復了,於是查看了一下各種監控記錄,發現伺服器磁碟空間被佔滿了!除了系統中的垃圾日誌文件外,Nginx的日誌也佔用了幾十G,先從系統垃圾日誌檔案開始清理吧!
CentOS系統中的垃圾日誌文件
CentOS系統中有兩個日誌服務,分別是傳統的rsyslog 和systemd-journal
systemd-journald是一個改進型日誌管理服務,可以收集來自核心、系統早期啟動階段的日誌、系統守護程序在啟動和運行中的標準輸出和錯誤訊息,以及syslog的日誌。
該日誌服務僅僅把日誌集中保存在單一結構的日誌檔案/run/log中,由於日誌是經歷過壓縮和格式化的二進位數據,所以在查看和定位的時候很迅速。
預設並不會持久化保存日誌,只會保留一個月的日誌。另外,有些rsyslog無法收集的日誌也會被journal記錄到。
rsyslog作為傳統的系統日誌服務,把所有收集到的日誌都記錄到/var/log/目錄下的各個日誌檔案中。
journal會佔用系統大約3G左右的磁碟空間,如果你的磁碟夠大,而且需要查看相關日誌,可以不進行刪除,如果是那種小硬碟的VPS一類的主機,建議刪除垃圾日誌檔案。
清空/var/log/journal 檔案的方法
用echo指令,將空字串內容重新導向到指定檔中
echo "" > system.journal
說明:此方法只會清空一次,一段時間後還要再次手動清空很麻煩,這裡可以用以下指令讓journalctl 自動維護空間
journalctl 指令自動維護檔案大小
1.只保留近一週的日誌
journalctl --vacuum-time=1w
2.只保留500MB的日誌
journalctl --vacuum-size=500M
3.直接刪除/var/log/journal/ 目錄下的日誌文件
rm -rf /var/log/journal/日誌目錄名稱
注意:journal會佔用系統大約3G左右的磁碟空間,如果你的磁碟夠大,需要查看相關日誌,可以不進行刪除,如果是那種小硬碟的VPS一類的主機,建議刪除垃圾日誌檔。