Ubuntu清理回收无用日志的常用方法
journalctl
是Ubuntu系统默认的日志管理工具,可高效管理systemd生成的日志(存储在/var/log/journal/
目录)。
journalctl --disk-usage
(显示当前日志占用的总空间);sudo journalctl --vacuum-time=7d
(保留最近7天的日志)、sudo journalctl --vacuum-time=1month
(保留最近1个月的日志);sudo journalctl --vacuum-size=100M
(保留最近100MB的日志)、sudo journalctl --vacuum-size=500M
(保留最近500MB的日志);sudo journalctl --vacuum-by-service=ssh.service
(仅清理SSH服务的日志)。/var/log
是Ubuntu系统日志的主要存储目录,包含syslog
(系统综合日志)、auth.log
(认证日志)、kern.log
(内核日志)等文件。
sudo > /var/log/syslog
(清空syslog)或sudo truncate -s 0 /var/log/syslog
(快速截断文件至0字节,保留文件属性);sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;
(递归查找并清空所有以.log
结尾的文件);sudo rm /var/log/auth.log
(删除认证日志,需谨慎操作,避免影响依赖该文件的服务)。auth.log
用于安全审计)。logrotate
是Ubuntu自带的日志自动化管理工具,可定期压缩、删除旧日志,避免手动操作。
cat /etc/logrotate.conf
(主配置文件,定义全局规则,如默认保留7天日志);cat /etc/logrotate.d/rsyslog
(针对rsyslog
服务的具体配置,如/var/log/syslog
的轮转规则:daily rotate 7 compress missingok notifempty create 0640 root adm
,表示每日轮转、保留7天、压缩旧日志);sudo logrotate -f /etc/logrotate.conf
(强制立即执行轮转,无需等待计划任务)。/etc/logrotate.d/
下的配置文件,可自定义日志保留策略(如调整rotate
值改变保留天数)。若需要更便捷的图形化或增强功能,可使用第三方工具:
sudo add-apt-repository ppa:gerardpuig/ppa && sudo apt update && sudo apt install ubuntu-cleaner
,打开后选择“Logs”选项卡,一键清理无用日志;sudo apt install logwatch
,配置/etc/logwatch/conf/logwatch.conf
(如设置邮件通知),运行sudo logwatch
生成日志报告并清理旧日志。sudo journalctl --vacuum-size=1G
(保留1GB日志)或复制关键日志文件(如/var/log/auth.log
)到其他存储设备,防止误删重要信息;rsyslog
、auditd
)依赖日志文件,删除后可能导致服务异常,需重启服务(如sudo systemctl restart rsyslog
)确认。