PVE一个LXC部署了一些打包任务,最近发现备份文件越来越大。但实际编译中间产物没有那么大的文件。

检查磁盘占用

首先使用如下命令检查磁盘占用情况(exclude的目录是挂载的NAS的共享目录):

sudo du -h --max-depth=1 / --exclude=/mnt 2>/dev/null | sort -h

问了ChatGTP说也可以使用如下命令可以自动跳过挂载点对应的外部文件系统

sudo du -xh --max-depth=1 / --one-file-system | sort -h

然后使用sudo du -h --max-depth=1 /var --exclude=/mnt 2>/dev/null | sort -h逐级查看占用比较大的空间目录,发现/var/lib/docker目录占用了大量空间。

查找大文件

找出某个目录下(这里是 /root/)大小超过 500MB 的文件(打印前40行并按照 MB 从小到大排列):

find /root/ -printf "%k %p\n" | sort -g -k 1,1 | awk '{if($1 > 500000) print $1/1024 "MB" " " $2 }' |tail -n 40

清理Docker残留数据

清空容器日志 (log files)

sudo truncate -s 0 /var/lib/docker/containers/*/*.log

清理不用的资源 (stopped 容器、dangling 镜像/缓存等)

docker system prune