linux 服务器磁盘满了的常见处理手段

关于磁盘爆炸了的常见处理手段,本文只探讨逻辑处理,不探讨物理硬件,也就是如何释放空间而不是新增更多的盘空间总量。

磁盘满了对于服务器的危害不言而喻,新的服务跑不起来,正在运行的服务执行不下去任务,只差撑爆了,反正就是各种不工作。需要释放一些容量,然后让服务能继续工作下去。最简单的办法就是删掉一些临时性的文件。

本文的写作目的,是做一个简单的记录,便于遇到类似情形时好作为参考,也会持续的更新方法。

工具

df

df 可用于查询磁盘的占用情况

sudo df -h /

du

du 可用于查看文件夹下各类文件占用磁盘的分布情况

sudo du -h /var/log/

ls

ls 可以查看文件的大小

ls -lh .

清理 apt cache

使用 apt-get clean 工具,并且查一查目录 /var/cache/apt/archives 的占用情况。

清理 log

journalctl

利用 journalctl 来设置最大允许 log,比如设置最大磁盘占用量为 500M。

sudo journalctl --vacuum-size=500M

清理 docker 相关的数据

清理掉不用的 docker images 和 docker containers,以及绑定的目录中用不到的文件。也可以直接利用 docker system prune

docker system prune

可以清除掉未用到的镜像、网络、容器、构建缓存。

有些 docker 容器的日志文件也会比较大,会与日俱增,比如 gitlab, 可以查看目录中 /var/lib/docker/containers/c4d2a14xxxcontainerid/c4d2a14xxxcontainerid-json.log 文件的大小。

查看 docker 日志文件的位置和大小

docker ps -aq | xargs -I '{}' docker inspect --format='{{.LogPath}}' '{}' | xargs ls -lh

如果 docker 容器的日志文件过大,可以使用 fallocate 工具减少文件体积

sudo fallocate --collapse-range --offset 0 --length 48GiB --verbose /var/lib/docker/containers/c4d2a14047xxxcontainerid/c4d2a14047xxxcontainerid-json.log

清理临时文件

tmp

查看 /tmp 目录下没有比较大的文件。

更多

持续需要更新方法,欢迎补充。

关于本文如您有任何想法和意见,欢迎与我们联系,邮箱地址zhi@uqugu.com
您对本文有什么看法,喜欢或者不喜欢都可以发表意见。