温馨提示×

如何清理CentOS大文件

小樊
38
2026-08-04 05:03:48
栏目: 智能运维

在 CentOS 系统中清理大文件,通常分为 查找大文件 → 判断是否可以删除 → 安全清理 三步。下面给你一套常用、安全的操作方案。


一、查找大文件

1️⃣ 查找整个系统中较大的文件(常用)

find / -type f -size +500M 2>/dev/null

说明:

  • 查找 大于 500MB 的文件
  • 2>/dev/null 忽略权限不足的错误

2️⃣ 查找前 20 个最大的文件

find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -20

二、按目录查看磁盘占用(推荐)

1️⃣ 查看根目录各目录占用情况

du -h --max-depth=1 / 2>/dev/null | sort -rh

2️⃣ 进入占用大的目录继续排查

cd /var
du -h --max-depth=1 | sort -rh

三、常见的大文件来源(重点排查)

✅ 1. 日志文件(最常见)

/var/log/messages
/var/log/secure
/var/log/*.log

查看:

du -sh /var/log/*

清理(不要直接 rm):

truncate -s 0 /var/log/messages
truncate -s 0 /var/log/secure

或删除旧日志:

rm -f /var/log/*.log-202*

✅ 2. 被删除但仍被进程占用的文件

这是 磁盘不释放 的常见原因。

查看:

lsof | grep deleted

例如:

java  12345  root  1w  REG  8,1  10G  123456  /var/log/app.log (deleted)

解决方法:

  • 重启相关服务
  • 或让程序重新打开日志文件

✅ 3. Docker / 容器相关(如果安装了 Docker)

docker system df

清理:

docker system prune -a

⚠️ 会删除未使用的容器、镜像、网络


✅ 4. 软件包缓存

yum clean all

或(CentOS 7/8):

dnf clean all

✅ 5. 临时文件

du -sh /tmp/*

清理:

rm -rf /tmp/*

⚠️ 不要删除正在使用的 socket 或 pid 文件


四、清理前的安全建议(非常重要)

不要直接 rm 正在写入的文件
先确认文件用途
重要文件先备份或 truncate
使用 truncate 而不是 rm 清理日志


五、快速清理示例(安全版)

# 查看磁盘
df -h

# 查找大文件
find / -type f -size +500M 2>/dev/null

# 清理日志
truncate -s 0 /var/log/messages
truncate -s 0 /var/log/secure

# 清理 yum 缓存
yum clean all

六、如果你愿意,我可以帮你:

  • ✅ 根据你的 df -h 结果精准分析
  • ✅ 判断哪些文件 绝对不能删
  • ✅ 定制一套 服务器清理脚本
  • ✅ 针对 Docker / Java / MySQL / Nginx 场景优化

你可以直接贴出:

df -h
du -sh /var/*

0