Linux磁盘爆满救命指南:3个命令+5个技巧,5分钟释放20GB!

90%的Linux用户都遇到过这种崩溃瞬间:明明没存什么文件,系统却提示"磁盘空间不足"?别急着买新硬盘,这篇干货教你精准定位"空间刺客",快速清理系统垃圾!
一、精准定位:三大命令详解
1️⃣ df命令:一秒看清全局磁盘状况
# 必须掌握的黄金命令df -h
输出解读:
Filesystem Size Used Avail Use% Mounted on/dev/sda1 50G 45G 3.5G 90% / # ← 根目录快满了!
高阶玩法:
df -hT # 显示文件系统类型df -i # 查看inode占用率df -x tmpfs -x devtmpfs # 排除临时文件系统
2️⃣ du命令:揪出吃空间的大户
# 必学组合:查看当前目录总大小du -sh .# 神器组合:一级一级深挖du -h --max-depth=1 /var | sort -hr
3️⃣ ncdu命令:可视化版的du
# 安装(Ubuntu/Debian)sudo apt-get install ncdu# 使用:直接扫描根目录sudo ncdu /
操作秘籍:方向键浏览,d删除,q退出
二、实战清理:5大空间回收术
🎯 技巧1:清空APT缓存(立竿见影!)
# 查看缓存大小(通常惊喜)du -sh /var/cache/apt/archives# 一键清理(释放1-5GB不是梦)sudo apt clean
🎯 技巧2:删除旧内核
风险提示:谨慎操作,别删当前在用内核!
# 1. 查看当前内核(千万别删这个!)uname -r# 2. 删除旧版本sudo apt-get remove --purge linux-image-X.X.X-X-generic# 懒人版(推荐)sudo apt autoremove --purge
🎯 技巧3:日志文件瘦身
# 保留最近3天日志,其余全删sudo journalctl --vacuum-time=3d# 限制日志最大500MBsudo journalctl --vacuum-size=500M
🎯 技巧4:揪出隐藏的大文件
# 找出大于100MB的所有文件sudo find / -type f -size +100M -exec ls -lh {} \;# 找出大于1GB的文件find /home -type f -size +1G 2>/dev/null
🎯 技巧5:图形化工具BleachBit
# 安装sudo apt-get install bleachbit# 运行(有GUI界面)sudo bleachbit
三、进阶技巧:自动清理神器tmpwatch/Tmpreaper
🔥 什么是tmpwatch/Tmpreaper?
这是Linux系统的自动清理临时工!专门清理长时间没人管的临时文件:
- tmpwatch:RedHat/CentOS系发行版使用
- Tmpreaper:Debian/Ubuntu系发行版使用(功能完全相同)
核心价值:按文件访问时间自动删除,特别适合 /tmp、/var/tmp 等临时目录
🔥 安装与使用
Ubuntu/Debian安装Tmpreaper:
sudo apt-get install tmpreaper
CentOS/RHEL安装tmpwatch:
sudo yum install tmpwatch
基础用法:
# 删除/tmp下7天未访问的文件sudo tmpreaper 7d /tmp# 删除/var/tmp下30天未修改的文件(基于修改时间)sudo tmpreaper --mtime 30d /var/tmp
🔥 关键参数详解
# 保护重要文件不删(支持通配符)sudo tmpreaper --protect '*.log' --protect 'important*' 7d /tmp# 只测试不删除(强烈推荐先测试!)sudo tmpreaper --test --verbose 7d /tmp# 同时删除符号链接sudo tmpreaper --symlinks 7d /tmp# 基于ctime清理(防Samba共享误删)sudo tmpreaper --ctime 7d /shared-tmp
🔥 配置定时任务(crontab)
# 编辑crontabsudo crontab -e# 添加以下内容:每天凌晨2点清理/tmp(跳过.logger文件)0 2 * * * /usr/sbin/tmpreaper --protect '*.logger' 7d /tmp# 每周清理/var/tmp(保留最近10天)0 3 * * 0 /usr/sbin/tmpreaper 10d /var/tmp
⚠️ 重要警告
千万别在根目录运行! 以下命令极度危险:
sudo tmpreaper 1d / # ❌ 会摧毁系统!
tmpreaper有内置保护机制,但仍需谨慎:
四、避坑指南:这些千万别乱删!
| | |
|---|
/boot | | |
/etc | | |
/lib | | |
/var/log | | |
/home/用户/.config | | |
黄金法则:
- 清理前执行
sudo timeshift --create创建系统快照
五、终极检查清单
✅ df -h 查看整体空间✅ du -sh /* 定位最大目录✅ sudo apt clean 清APT缓存✅ sudo apt autoremove --purge 删旧内核✅ sudo journalctl --vacuum-time=3d 清理日志✅ 配置tmpreaper自动清理/tmp
预期效果:通常可释放 5-20GB 空间,无需重启!
💬 互动话题
你在Linux上遇到过最奇葩的磁盘爆满原因是什么?是日志失控?Docker镜像堆满?还是core dump文件偷袭?