在 CentOS 系统中清理大文件,通常分为 查找大文件 → 判断是否可以删除 → 安全清理 三步。下面给你一套常用、安全的操作方案。
find / -type f -size +500M 2>/dev/null
说明:
2>/dev/null 忽略权限不足的错误find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -20
du -h --max-depth=1 / 2>/dev/null | sort -rh
cd /var
du -h --max-depth=1 | sort -rh
/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*
这是 磁盘不释放 的常见原因。
查看:
lsof | grep deleted
例如:
java 12345 root 1w REG 8,1 10G 123456 /var/log/app.log (deleted)
解决方法:
docker system df
清理:
docker system prune -a
⚠️ 会删除未使用的容器、镜像、网络
yum clean all
或(CentOS 7/8):
dnf clean all
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 结果精准分析你可以直接贴出:
df -h
du -sh /var/*