当前位置:首页>Linux>Linux磁盘爆满救命指南:3个命令+5个技巧,5分钟释放20GB!

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

  • 2026-10-21 13:30:24
Linux磁盘爆满救命指南:3个命令+5个技巧,5分钟释放20GB!

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
用户配置
🟡中危

黄金法则:

  1. 不确定的文件先mv到/tmp测试
  2. 清理前执行sudo timeshift --create创建系统快照
  3. 生产环境务必先备份!

五、终极检查清单

✅ 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文件偷袭?

最新文章

随机文章