清理Ubuntu系統日志的常用方法
Ubuntu系統的日志文件主要存儲在/var/log目錄下,長期積累會占用大量磁盤空間。以下是三種安全有效的清理方法,覆蓋不同場景需求:
journalctl是systemd的日志管理工具,可精準控制日志的清理范圍(如按時間、大小、服務),且不會破壞系統日志結構。
journalctl --disk-usage,可快速了解當前日志文件的總大?。ɡ顼@示“Log data is stored in 2 files, total size 5.2G”)。sudo journalctl --vacuum-time=1weeksudo journalctl --vacuum-time=1monthsudo journalctl --vacuum-time=2weeks(更靈活的時間單位支持days、hours)。sudo journalctl --vacuum-size=100M(也可用G表示GB)。sudo journalctl --vacuum-by-service=ssh.service,避免影響其他服務日志。適用于需要快速釋放空間或精準刪除特定日志文件的場景,但需注意不要刪除系統關鍵日志(如syslog、auth.log可能影響故障排查)。
ls -l /var/log,確認需要清理的文件(常見日志文件包括syslog、auth.log、kern.log、dmesg等)。sudo > /var/log/syslog(清空系統日志)、sudo > /var/log/auth.log(清空認證日志)。kern.log.1),可直接刪除:sudo rm /var/log/kern.log。sudo rm -rf /var/log/*會刪除/var/log下所有文件,僅建議在系統初始化或日志完全無用時使用。logrotate是Ubuntu默認的日志輪轉工具,可自動完成日志的壓縮、刪除和輪轉,無需手動干預,適合長期維護。
/etc/logrotate.conf定義了全局規則(如默認保留7天日志),服務特定配置存放在/etc/logrotate.d/目錄下(如rsyslog配置文件管理syslog、auth.log等日志)。sudo logrotate -f /etc/logrotate.conf。sudo nano /etc/logrotate.d/rsyslog),調整保留策略。例如以下配置表示:
syslog文件;/var/log/syslog {
rotate 7
daily
compress
delaycompress
missingok
notifempty
create 0640 root adm
}
sudo cp /var/log/syslog ~/syslog_backup),防止誤刪導致故障無法排查。logrotate自動化管理,減少人為操作風險。auth.log記錄登錄信息,若需審計則保留)。df -h,確認磁盤空間是否釋放(通常/var分區空間會明顯增加)。