Linux系统盘被塞满如何快速删除垃圾文件恢复系统

原则:少量、分步、局部化扫描 → 定位大目录 → 只在该目录内部继续扫描并清理。避免一次性 find / -size ... 或全盘 du


1. 先确认盘满与目标分区

df -h /

/(或实际系统盘)是否 100%。若是,进入下一步。

Linux系统盘被塞满如何快速删除垃圾文件恢复系统

2. 在根目录只查看第一层子项大小

推荐命令(单位 MB,快速):

cd /
du -s -BM /* 2>/dev/null | sort -nr | head -n 20

解释:

  • du -s -BM /* 只统计根目录下每个第一层项的总大小(不递归所有子层),开销小。
  • sort -nr | head -n 20 取前 20 个最大项,便于快速定位大头。

注意:不要运行 du -xh / | sort -h 或全盘 find(这些会遍历大量小文件,压力大、耗时长)。


3. 针对最大项逐层钻取(人工递进)

假设上一步看到 /var 最大,进入 /var 再查看第一层:

cd /var
du -s -BM ./* 2>/dev/null | sort -nr | head -n 20

如果是 /var/log 最大,进入 /var/log

cd /var/log
du -s -BM ./* 2>/dev/null | sort -nr | head -n 20

重复“进入 -> 只看第一层 -> 进入最大项”步骤,直到定位到某个大文件或少数几个大文件夹为止。


4. 快速、安全地释放空间(优先清空而不是删除)

找到大文件后,推荐先清空内容(保留文件路径和权限),例如日志:

# 清空单个文件(变为 0 字节)
> big.log

# 或使用 truncate
truncate -s 0 big.log

如果是一堆日志文件:

# 在目标目录下清空所有 .log(谨慎测试后使用)
for f in *.log; do : > "$f"; done

清空优点:对正在写日志的服务安全,不产生“幽灵文件”问题;比 rm 更稳妥。

如必须删除临时文件:

rm -f large_tmp_file
# 或删除目录(非常小心)
rm -rf somedir_to_remove

提醒:不要随意 rm -rf /var 之类全局删除,先确认路径是业务无关或可重建的临时文件。


5. 检查删除后空间 & 释放句柄问题

检查空间:

df -h /

如果空间没有回升,可能是进程仍在写被删除的文件(幽灵文件)。查看占用已删除文件的进程(如果 lsof 可用):

lsof -nP +L1 2>/dev/null

该命令会列出已删除但仍被进程打开的文件。若确实是这种情况,最好重启对应服务或进程以释放空间(谨慎):

systemctl restart service-name
# 或 kill -HUP pid

如果 lsof 不可用,可重启关键服务或整机(若业务允许)以释放空间。


6. 紧急流程速查(一行版动作指南)

  1. df -h / → 确认满盘
  2. du -s -BM /* 2>/dev/null | sort -nr | head → 找到大头目录
  3. cd /that/dir && du -s -BM ./* 2>/dev/null | sort -nr | head → 递进定位
  4. 找到大文件:> filetruncate -s 0 file(首选)
  5. df -h / → 验证空间恢复
  6. 如空间没释放:lsof -nP +L1 → 重启持有进程

注意事项(必须读)

  • 在生产环境不要盲目删除不熟悉的文件。
  • 优先清空日志而非删除已被程序使用的文件。
  • 在无法判断是否安全删除时,先复制或移动到别处(如果有空间或挂载远程盘)再删除。
  • 若你没有足够权限或不确定影响,请联系运维/同事协助。
Linux运维宝塔面板

宝塔面板自动续签Let's Encrypt SSL证书功能无效解决方法

2025-11-17 16:01:38

Linux运维

Linux系统清空文件和删除文件的区别

2025-11-17 15:35:10

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索