阿猫的博客

阿猫的博客

排查 Linux 空间占用

142
2024-11-09

在维护自己的服务器的时候经常会出现空间不足的情况,总结了一些经验和命令以备后续速查。

文件系统

先看一下系统总体的磁盘占用,确定一下系统上有几块盘,是哪块满了。

df -h

粗筛,看看根目录下哪个文件夹的占用比较大。

du -h --max-depth=1

找出当前目录下最大的 10 个文件

du -a -h . | sort -h -r | head -n 10

找出当前目录下大于 500M 的文件(并打印出文件大小)

find . -type f -size +500M  -print0 | xargs -0 du -h

Docker

docker system df [-v]

会展示出不同类型的东西占用了多少空间,有多少空间可以清理。加上 -v 会输出更加详细的信息。

TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          18        5         18.67GB   16.7GB (89%)
Containers      5         0         367.9MB   367.9MB (100%)
Local Volumes   4         4         540.4MB   0B (0%)
Build Cache     163       0         4.309GB   4.309GB

一般来说,都是没用的镜像和未使用的卷(这个需要注意是否存了有用的数据,最好还是用绑定目录的方式吧)占的空间会非常多,给执行一下下面这一套。

docker image prune [-a, --all]
docker volume prune

包管理

yum clean all # centos
apt-get auto-remove && apt-get clean # ubuntu, debian...

编程语言

go clean -cache # go
pip cache purge # python
conda clean [-a, --all] # conda
poetry cache clear --all . # poetry
composer clear-cache # php

References

Linux 如何查找大文件或目录总结 - 潇湘隐者 - 博客园
linux - How to find the largest directories or largest files? - Super User
How to inspect volumes size in Docker | by MrManafon | Homullus | Medium