Linux 服务器磁盘满了:从定位大文件到清理,一次讲清
Linux 服务器磁盘满了:从定位大文件到清理,一次讲清
磁盘 100% 是运维最常见的半夜告警。服务写不进日志、数据库起不来、上传失败,根子往往都在磁盘满了。排查就三步:先看哪个分区满,再找是谁占的,最后安全地清。
一、先看哪个分区满了:df
df -h # 看各分区使用率,重点看 Use% 接近 100% 的
df -i # 再看 inode 用量,文件数太多也会“满”
注意区分两种“满”:空间满了(df -h 的 Use% 到 100%),和 inode 用完了(df -i 的 IUse% 到 100%)。小文件太多会先耗尽 inode,这时删大文件没用,得删小文件。
二、找是谁占的:du
定位到满的分区,比如根分区 /,一层层往下钻:
du -sh /* # 看根目录下各目录占多少
du -sh /var/* | sort -rh | head -10 # 找出 /var 下最大的 10 个
du -sh /home/* | sort -rh | head -10
常用的几个“重灾区”:/var/log(日志)、/var/lib/docker(容器镜像和数据卷)、/tmp(临时文件)、应用自己的数据目录。
装了 ncdu 的话更直观,可以像文件管理器一样逐层点进去看:
ncdu /var
三、日志是最常见的元凶
很多磁盘告警最后都是日志撑爆的。先确认日志目录大小:
du -sh /var/log
ls -lhS /var/log | head -10 # 按大小排序,看最大的日志文件
清理之前先想清楚:日志还能不能要。能不要的直接删,不能删的先压缩归档:
# 确认文件未被进程占用再删
rm -f /var/log/xxx.log.2026-10-*.gz # 删旧的压缩日志
# 日志还在被写,删文件不释放空间,先清空
: > /var/log/xxx.log
# 或者用 truncate
truncate -s 0 /var/log/xxx.log
注意:直接 rm 一个正在被进程写的文件,空间不会释放,因为文件句柄还占着。必须清空文件内容,或者重启写日志的进程。可以用 lsof | grep deleted 找出这类“已删但还占着空间”的文件。
治本的办法是配好 logrotate,让日志自动轮转、压缩、过期删除:
cat /etc/logrotate.d/xxx
logrotate -d /etc/logrotate.d/xxx # 调试模式,看轮转规则是否生效
系统日志也可以直接瘦身:
journalctl --disk-usage # 看 systemd 日志占了多少
journalctl --vacuum-size=500M # 只保留最近 500M
journalctl --vacuum-time=7d # 只保留最近 7 天
四、Docker 占的空间
跑容器的机器,/var/lib/docker 经常是第一大户:
docker system df # 看镜像、容器、数据卷各占多少
docker system prune -a --volumes # 清理没用的镜像、容器、网络和匿名卷
prune 会删东西,执行前确认没有正在用的镜像和数据卷。只清悬空镜像更安全:
docker image prune -a
五、其他常见占位
| 位置 | 排查命令 | 处理 |
|---|---|---|
| /tmp 临时文件 | du -sh /tmp |
删过期文件,重启后一般自动清 |
| 应用缓存 | 看应用自己的缓存目录 | 按应用文档清,别直接删数据目录 |
| 数据库 binlog | du -sh /var/lib/mysql |
按保留天数清理,勿删正在用的 |
| 备份文件 | find / -name "*.bak" -o -name "*.tar.gz" |
转移到对象存储或删旧备份 |
| 已删未释放 | `lsof | grep deleted` |
六、排查流程
| 现象 | 先查 | 工具 |
|---|---|---|
| 磁盘告警 | 哪个分区满、是不是 inode 满 | df -h、df -i |
| 不知道谁占的 | 逐层定位大目录 | du -sh、ncdu |
| 日志撑爆 | 最大日志文件 | ls -lhS、journalctl |
| 删了文件空间不释放 | 已删未释放的文件句柄 | lsof | grep deleted |
| 容器机器满 | 镜像和卷占用 | docker system df |
小结
磁盘满了别急着扩容,先定位:df 看分区,du 找大户,日志和 Docker 是最常见的两处。清理时记住两条红线:删文件前确认有没有进程正在写,删数据前确认有没有备份。把 logrotate 和日志保留策略配好,这类告警以后会少很多。
- 点赞
- 收藏
- 关注作者
评论(0)