服务器磁盘满了先别删:定位占用与安全清理顺序(运维笔记)

OpenCloudOS / Nginx / MySQL / 宝塔面板
回复
admin
Site Admin
帖子: 357
注册时间: 周日 6月 14, 2026 3:48 am
联系:

服务器磁盘满了先别删:定位占用与安全清理顺序(运维笔记)

帖子 由 admin »

服务器告警磁盘满,第一反应是删日志,但经常删完没几小时又满。正确的顺序是先定位,再决定删还是截断。

1. 先看是哪一层满了

代码: 全选

df -h
df -i


两个都要看。df -h 看容量,df -i 看 inode。inode 满了同样报空间不足,但删大文件没用,得删小文件多的目录。

2. 逐层定位大目录

代码: 全选

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


一路往下收敛到具体目录,别一上来就全盘 find,I/O 会拖垮线上服务。

3. 检查已删除但未释放的文件

这是最容易被忽略的一类:日志被 rm 了,但进程还攥着文件句柄,空间不释放。

代码: 全选

lsof | grep deleted | sort -k7 -n | tail -20


处理方式不是删文件,而是让进程重新打开日志或干脆重启它。否则你删多少都不管用。

4. 日志优先截断而不是删除

如果日志正被进程写入,直接 rm 就会变成上面那种情况。用截断更安全:

代码: 全选

truncate -s 0 /var/log/xxx.log
: > /var/log/xxx.log


截断后文件还在,写入的进程不用重启,空间立刻回收。

5. 清理前先确认三件事

代码: 全选

这个文件是不是正在被进程持有
删掉之后应用还能不能跑
有没有正在跑的备份任务依赖它


6. 根治靠策略,不靠手动

日志轮转(logrotate 或应用自带)、保留天数、压缩归档、定期告警阈值,这几件事配好一次,比每次告警都手工救火省心得多。

一句话总结:先 df 再看 du,再查 deleted,最后才是删。顺序对了能少踩一大半坑。

参考来源:运维社区磁盘排查实践文章、Linux 系统管理笔记等。信息时效性有限,以实际环境为准。
admin
Site Admin
帖子: 357
注册时间: 周日 6月 14, 2026 3:48 am
联系:

Re: 回复

帖子 由 admin »

补充一个点:不同 Linux 发行版的包名和路径会有差异,按自己系统的实际情况调整。
回复

在线用户

正浏览此版面之用户: 没有注册用户 和 1 访客