Ubuntu日志清理方法介绍
Ubuntu系统的日志文件主要存储在/var/log目录下(如syslog、auth.log、kern.log等),随着时间推移会占用大量磁盘空间。以下是常用的日志清理方法,涵盖手动、自动及工具辅助三种场景:
journalctl命令(Systemd日志管理)journalctl是Ubuntu默认的日志管理工具,可高效管理systemd生成的日志(覆盖大部分系统服务)。
journalctl --disk-usage(显示当前日志总大小,如“1.2G”)。sudo journalctl --vacuum-time=7d;sudo journalctl --vacuum-size=100M。ssh.service的所有日志:sudo journalctl --vacuum-by-service=ssh.service;4.15.0-45-generic):sudo journalctl --vacuum-kernel=4.15.0-45-generic。适用于需要精准控制的情况,但需谨慎操作(避免删除系统关键日志)。
ls -l /var/log(确认文件用途,如syslog记录系统事件,auth.log记录登录信息)。sudo > /var/log/syslog(不清除文件本身,仅清空内容);sudo rm /var/log/auth.log(删除后文件消失,需确认无后续服务依赖)。logrotate工具(系统自带)logrotate是Ubuntu默认的日志轮转工具,可自动压缩、备份、删除旧日志(无需手动干预)。
cat /etc/logrotate.conf(核心参数:rotate 7表示保留7份日志,daily表示每日轮转,compress表示压缩旧日志)。cat /etc/logrotate.d/rsyslog(针对rsyslog服务的配置,如/var/log/syslog的轮转规则)。sudo logrotate -f /etc/logrotate.conf(强制执行一次轮转,用于测试配置)。适用于自定义清理需求(如清理应用日志、临时文件等)。
/home/user/cleanup.sh):#!/bin/bash
# 清理7天前的.log文件
sudo find /var/log -type f -iname "*.log" -mtime +7 -exec rm -f {} \;
# 清理journal日志(保留100MB)
sudo journalctl --vacuum-size=100M
赋予执行权限:chmod +x /home/user/cleanup.sh。crontab -e,添加以下行(每天凌晨2点执行):0 2 * * * /bin/bash /home/user/cleanup.sh。图形化工具,可清理日志、缓存、旧软件包等。
sudo add-apt-repository ppa:gerardpuig/ppa && sudo apt update && sudo apt install ubuntu-cleaner;开源工具,支持清理日志、临时文件、浏览器缓存等。
sudo apt install bleachbit;cp /var/log/syslog ~/syslog_backup备份,防止误删关键信息;journalctl --vacuum-time=7d),便于故障排查;logrotate -f测试,确认无误后再设置定时任务。