清理Ubuntu系统日志的实用技巧
Ubuntu系统的日志文件主要存储在/var/log
目录下,随着时间推移会占用大量磁盘空间。以下是几种安全有效的清理方法,覆盖不同场景需求:
journalctl是Ubuntu管理systemd日志的核心工具,可精准清理旧日志或特定服务的日志,避免误删系统关键信息。
journalctl --disk-usage
(显示当前日志总大小,如“1.2G”);sudo journalctl --vacuum-time=2weeks
(删除两周前的所有日志,保留近期);sudo journalctl --vacuum-time=3d
(删除3天前的日志);sudo journalctl --vacuum-size=100M
(删除旧日志直至总大小不超过100MB,适合磁盘空间紧张的情况);sudo journalctl --vacuum-by-service=ssh.service
(仅删除SSH服务的日志,不影响其他系统日志)。适用于需要删除特定日志文件或快速释放空间的场景,操作前需确认文件用途。
ls -l /var/log
(按修改时间排序可加-t
参数,如ls -lt /var/log
,最新修改的文件在前);sudo > /var/log/auth.log
(清空认证日志,不删除文件本身,适合保留文件结构但释放空间);sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;
(查找/var/log
下所有.log
后缀的文件,并将其大小截断为0,即清空内容);sudo rm /var/log/syslog
(删除系统日志文件,删除前需确认该文件是否不再需要,如/var/log/kern.log
记录内核信息,删除可能影响故障排查)。logrotate是Ubuntu默认的日志管理工具,可自动压缩、删除旧日志,避免手动操作麻烦。
cat /etc/logrotate.conf
(了解全局设置,如日志保留数量rotate 4
表示保留4个旧日志,压缩方式compress
表示用gzip压缩);cat /etc/logrotate.d/rsyslog
(查看rsyslog服务的日志轮转规则,如/var/log/syslog
的轮转周期为每周,保留4个旧日志);sudo logrotate -f /etc/logrotate.conf
(强制执行轮转,立即应用配置规则,无需等待下次定时任务)。sudo cp /var/log/syslog ~/syslog_backup
(防止误删后无法追溯系统问题);/var/log/syslog
(系统综合日志)、/var/log/auth.log
(认证日志,含登录记录)、/var/log/kern.log
(内核日志,含硬件/驱动问题)等文件对故障排查至关重要,删除前需确认需求;crontab -e
添加:0 2 * * 0 sudo journalctl --vacuum-size=200M
(每周清理至200MB以内)。以上方法可根据系统使用场景组合使用,例如:日常用journalctl
按时间清理,长期未清理用find
批量清空,自动化需求用logrotate
配置轮转,确保系统日志既不占用过多空间,又能保留必要信息。