
磁盘空间满的问题基本是每个运维牛马都会遇到的,接下来我将通过5步完成排查和解决磁盘满的问题。
第一步:哪个挂载点满了?
df -h
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 49G 500M 100%
一般系统都有多个挂载点,首先找出哪个挂载点爆满。
第二步:哪个目录最占空间?
# 查看
sudo du -h --max-depth=1 | sort -hr | head -n 10
参数说明:
du
:查看文件夹体积--max-depth=1
:只看一级目录sort
:从大到小排序head
:只显示前10个
找到哪个目录占用较多,再深入查看:
du -h --max-depth=3 data | sort -hr | head -n 10

通常 是日志文件占据较大空间,能删除的也只有日志,或者备份
第三步:找出最大文件
# 从上两步定位出来,再根据大小进一步确认
find data -type f -size +1G -exec ls -lh {} \; 2>/dev/null | sort -k5 -hr | head -n 20

从上图可以看出有个30G的tomcat日志文件,这样就可以清理了,这种大文件建议进行切割,然后定时清理。
第四步:查看被删但仍占空间的文件
lsof | grep deleted
看到某个被删的日志文件还被占用?

解决办法:重启对应服务即可释放磁盘。
第五步:快速清理技巧
> var/log/xxx.log | |
find var/log -type f -name "*.log" -mtime +7 -exec rm -f {} \; | |
docker system prune -af | |
sudo apt clean | |
sudo yum clean all |
【温馨提示】在删除前一定要确保不影响系统运行。
总结一句话:
用
df
找哪里满了 → 用du
/find
找大目录/大文件 → 清理/重启释放空间。如果经常出现,就加一个定时任务定期处理。
往期精彩文章:
文章转载自运维李哥不背锅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




