Linux磁盘爆满不用慌

第一步:检查哪个挂载点满了?

df -h

输出示例:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   49G  500M  100% /

一般系统都有多个挂载点,首先找出哪个挂载点爆满。

第二步:哪个目录最占空间?

# 查看
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

  –》这个命令会直接清空该文件的所有内容

删除7天前日志

find /var/log -type f -name "*.log" -mtime +7 -exec rm -f {} \;

清理 Docker

docker system prune -af

清理 APT 缓存

apt clean

清理 YUM 缓存

 yum clean all

【温馨提示】在删除前一定要确保不影响系统运行,删除重要文件前可以做备份或打快照。

总结一句话:

用 df 找哪里满了 → 用 du/find 找大目录/大文件 → 清理/重启释放空间。

如果经常出现,就加一个定时任务定期处理。

Comments: 0

「人生在世,留句话给我吧」

提交评论