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天前的日志)。