Ubuntu系統日志清理技巧
Ubuntu系統的日志文件主要存儲在/var/log目錄下,隨著時間推移會占用大量磁盤空間。以下是幾種安全有效的清理方法,覆蓋手動、自動及工具化方案:
journalctl是Ubuntu管理systemd日志的核心工具,可精準清理舊日志或特定服務日志。
journalctl --disk-usage(顯示當前日志總大小,如“1.2G”)。sudo journalctl --vacuum-time=7d;保留最近1個月日志:sudo journalctl --vacuum-time=1month(支持week/month/year等單位)。sudo journalctl --vacuum-size=100M(自動刪除舊日志,直到剩余空間≤100MB)。sudo journalctl --vacuum-by-service=ssh.service(僅清理該服務的日志,不影響其他系統日志)。適用于需要刪除特定日志文件的場景,操作前需確認文件用途(避免誤刪系統關鍵日志)。
ls -l /var/log(顯示/var/log下所有日志文件,如syslog、auth.log、kern.log等)。sudo rm /var/log/auth.log(刪除后文件消失,釋放對應空間)。sudo > /var/log/syslog(快速清空syslog文件,適用于大文件)。sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;(查找/var/log下所有.log文件并清空內容,避免逐個刪除)。logrotate是Ubuntu默認的日志管理工具,可自動壓縮、刪除舊日志,無需手動干預。
cat /etc/logrotate.conf(了解全局設置,如默認保留7天日志、壓縮方式等)。rsyslog服務(管理syslog、auth.log等)的輪轉規則:cat /etc/logrotate.d/rsyslog(典型配置:rotate 7表示保留7天日志,compress表示壓縮舊日志,daily表示每日輪轉)。sudo logrotate -f /etc/logrotate.conf(強制執行輪轉,立即應用配置規則,生成壓縮后的舊日志文件,如syslog.1.gz)。若需要更直觀的日志管理,可使用第三方工具簡化操作:
sudo apt-get install logwatch;配置:編輯/etc/logwatch/conf/logwatch.conf(設置報告周期、郵件通知等);運行:sudo logwatch(查看系統日志摘要)。/var/log/syslog、/var/log/auth.log),防止誤刪導致故障無法排查:sudo cp /var/log/syslog ~/syslog_backup。/var/log下的核心日志文件(如syslog、kern.log、dmesg),這些文件用于系統故障診斷。crontab -e,添加0 2 * * 0 sudo journalctl --vacuum-time=7d(每周清理7天前的日志)。