Linux 磁盘满了别慌:从定位大文件到安全清理的排查思路
【摘要】 Linux 磁盘满了别慌:从定位大文件到安全清理的排查思路服务器跑着跑着,某天写文件突然报“空间不足”,服务却还活着,这是很多人第一次遇到磁盘满的现场。别急着删东西,先定位,再清理,最后留个兜底。 第一步:先确认满的是哪一块df -hdf -idf -h 看容量,df -i 看 inode。容量没满但 inode 满了,也一样写不进文件,两种满法要分清。 第二步:从根目录往下找du -sh...
Linux 磁盘满了别慌:从定位大文件到安全清理的排查思路
服务器跑着跑着,某天写文件突然报“空间不足”,服务却还活着,这是很多人第一次遇到磁盘满的现场。别急着删东西,先定位,再清理,最后留个兜底。
第一步:先确认满的是哪一块
df -h
df -i
df -h 看容量,df -i 看 inode。容量没满但 inode 满了,也一样写不进文件,两种满法要分清。
第二步:从根目录往下找
du -sh /* 2>/dev/null | sort -h
先看一级目录谁最大,再往可疑的目录钻一层,不要一上来就全局扫,慢而且噪音多。日志、缓存、备份、容器数据是常见的几个大头。
第三步:日志先看增长原因,再谈清理
日志大,先看是哪个服务在刷:
du -sh /var/log/* 2>/dev/null | sort -h | tail -20
能用系统自带工具轮转的,优先用工具:
journalctl --vacuum-size=500M
直接删正在被写的日记文件要小心,文件删了、进程还占着句柄,空间未必释放,服务也可能写丢。用 lsof | grep deleted 可以看到这类“删了还占着”的文件,重启对应服务才是正解。
第四步:缓存和包管理残留,删之前先分清
apt clean
docker system df
包缓存、旧镜像层、悬空卷都可能占不少空间。docker system prune 这类命令会动真格,跑之前先确认上面没有要留的容器和卷,别在生产机上顺手执行。
第五步:备份目录最容易误伤
备份文件看着最占地方,也最容易一删就后悔。删之前确认三点:这份备份有没有第二份、最近一次恢复演练是什么时候、删的是过期备份还是唯一副本。只删已确认过期、且有异地副本的旧备份。
留个兜底:满之前就报警
磁盘用到 80% 就该报警,而不是等到 100% 才处理。定时任务里加一行 df 检查,超阈值发一条通知,比半夜起来救火便宜得多。清理完再跑一次 df -h,确认空间真的回来了,而不是只删了个文件名。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)