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)确认。