Vertex Docker 存储占用查看与种子缓存清理教程
使用 Docker 部署 Vertex 后,运行时间久了可能会发现服务器磁盘占用越来越大。
其中比较常见的原因是 Vertex 的种子缓存目录 torrents 积累了大量 .torrent 文件。
本文记录如何查看 Vertex Docker 的存储占用、手动清理种子缓存目录,以及配置定时任务自动清理。
一、Vertex Docker Compose 示例
本文以如下 Docker Compose 部署方式为例:
services:
vertex:
container_name: vertex
volumes:
- ./vertex:/vertex
ports:
- 3000:3000
environment:
- TZ=Asia/Shanghai
restart: unless-stopped
image: lswl/vertex:stable
其中:
- ./vertex:/vertex
表示宿主机当前目录下的 ./vertex 文件夹,会映射到容器内的 /vertex 目录。
也就是说,Vertex 的数据实际保存在宿主机的:
/opt/docker/vertex/vertex
如果你的 docker-compose.yml 位于:
/opt/docker/vertex/docker-compose.yml
那么 Vertex 的实际数据目录就是:
/opt/docker/vertex/vertex
二、查看 Vertex 目录存储占用
进入 Vertex 的 Docker Compose 目录:
cd /opt/docker/vertex
查看 Vertex 总占用和一级目录占用:
du -h --max-depth=1 ./vertex | sort -h
示例输出:
20K ./vertex/config
332K ./vertex/data
18M ./vertex/logs
132M ./vertex/torrents
198M ./vertex/db
347M ./vertex
常见目录说明:
./vertex/config Vertex 配置目录
./vertex/data Vertex 数据目录
./vertex/logs Vertex 日志目录
./vertex/torrents Vertex 种子缓存目录
./vertex/db Vertex 数据库目录
./vertex Vertex 总占用
如果想看更详细的二级目录占用,可以执行:
du -h --max-depth=2 ./vertex | sort -h | tail -30
查看服务器整体磁盘占用:
df -h
查看 Docker 整体占用:
docker system df -v
三、确认种子缓存目录占用
Vertex 的种子缓存目录一般是:
./vertex/torrents
查看该目录占用:
du -h --max-depth=1 ./vertex/torrents | sort -h
统计 .torrent 文件数量:
find ./vertex/torrents -type f -name "*.torrent" | wc -l
统计 30 天以前的 .torrent 文件数量:
find ./vertex/torrents -type f -name "*.torrent" -mtime +30 | wc -l
如果这里数量特别多,例如几万、几十万个,就说明磁盘占用主要来自种子缓存。
四、手动删除 30 天以前的种子缓存
建议优先使用这种方式,只删除较早的缓存文件,比较稳妥。
进入目录:
cd /opt/docker/vertex
停止 Vertex 容器:
docker compose stop
查看 30 天以前的 .torrent 文件数量:
find ./vertex/torrents -type f -name "*.torrent" -mtime +30 | wc -l
删除 30 天以前的 .torrent 文件:
find ./vertex/torrents -type f -name "*.torrent" -mtime +30 -delete
清理空目录:
find ./vertex/torrents -type d -empty -delete
启动 Vertex 容器:
docker compose start
再次查看占用:
du -h --max-depth=1 ./vertex | sort -h
这个操作只删除 Vertex 缓存的种子文件,不会删除下载器里已经下载好的影视资源、文件或数据。
五、手动清空全部种子缓存
如果 ./vertex/torrents 占用非常大,并且确认不需要保留种子缓存,可以直接清空全部 .torrent 文件。
进入目录:
cd /opt/docker/vertex
停止容器:
docker compose stop
删除全部 .torrent 缓存文件:
find ./vertex/torrents -type f -name "*.torrent" -delete
清理空目录:
find ./vertex/torrents -type d -empty -delete
启动容器:
docker compose start
查看清理后的空间:
du -h --max-depth=1 ./vertex | sort -h
注意:
这个操作不会删除下载器里的真实下载内容,只会删除 Vertex 自己保存的 .torrent 缓存文件。
六、添加定时任务自动清理种子缓存
如果 Vertex 长期运行,建议配置定时任务,自动清理 30 天以前的种子缓存。
编辑当前用户的定时任务:
crontab -e
加入下面这一行:
0 4 * * 0 find /opt/docker/vertex/vertex/torrents -type f -name "*.torrent" -mtime +30 -delete && find /opt/docker/vertex/vertex/torrents -type d -empty -delete
含义:
0 4 * * 0
表示每周日凌晨 4 点执行一次。
后面的命令含义是:
删除 /opt/docker/vertex/vertex/torrents 目录下 30 天以前的 .torrent 文件,并清理空目录
保存退出后,定时任务会自动生效。
七、带日志的定时清理任务
如果希望后续能查看清理任务是否执行,可以使用带日志的版本。
执行:
crontab -e
添加:
0 4 * * 0 echo "===== $(date '+\%F \%T') Vertex torrents clean start =====" >> /var/log/vertex-torrents-clean.log 2>&1 && find /opt/docker/vertex/vertex/torrents -type f -name "*.torrent" -mtime +30 -delete >> /var/log/vertex-torrents-clean.log 2>&1 && find /opt/docker/vertex/vertex/torrents -type d -empty -delete >> /var/log/vertex-torrents-clean.log 2>&1 && echo "===== $(date '+\%F \%T') Vertex torrents clean done =====" >> /var/log/vertex-torrents-clean.log 2>&1
查看日志:
tail -50 /var/log/vertex-torrents-clean.log
如果想实时查看:
tail -f /var/log/vertex-torrents-clean.log
注意:
在 crontab 中使用 date 命令时,% 需要写成 \%,否则可能导致定时任务执行异常。
八、查看已经添加的定时任务
查看当前用户的定时任务:
crontab -l
如果看到类似内容:
0 4 * * 0 find /opt/docker/vertex/vertex/torrents -type f -name "*.torrent" -mtime +30 -delete && find /opt/docker/vertex/vertex/torrents -type d -empty -delete
说明定时任务已经添加成功。
九、删除 Vertex 自动清理定时任务
如果后续不想自动清理,可以执行:
crontab -e
找到这一行:
0 4 * * 0 find /opt/docker/vertex/vertex/torrents -type f -name "*.torrent" -mtime +30 -delete && find /opt/docker/vertex/vertex/torrents -type d -empty -delete
删除整行,保存退出即可。
如果添加的是带日志版本,也删除对应那一整行。
十、查看 cron 服务是否正常
Debian / Ubuntu 系统可以执行:
systemctl status cron
如果显示:
active (running)
说明 cron 服务正常运行。
如果没有运行,可以启动:
systemctl start cron
设置开机自启:
systemctl enable cron
十一、查看 cron 执行日志
Debian / Ubuntu 一般可以查看:
grep CRON /var/log/syslog | tail -50
如果系统没有 /var/log/syslog,可以使用:
journalctl -u cron --since "1 day ago"
也可以查看当前用户最近的 cron 日志:
journalctl | grep CRON | tail -50
十二、建议保留的常用命令
查看 Vertex 占用
cd /opt/docker/vertex
du -h --max-depth=1 ./vertex | sort -h
查看种子缓存数量
find ./vertex/torrents -type f -name "*.torrent" | wc -l
删除 30 天以前的种子缓存
find ./vertex/torrents -type f -name "*.torrent" -mtime +30 -delete
find ./vertex/torrents -type d -empty -delete
清空全部种子缓存
find ./vertex/torrents -type f -name "*.torrent" -delete
find ./vertex/torrents -type d -empty -delete
查看服务器磁盘空间
df -h
查看 Docker 占用
docker system df -v
十三、注意事项
- 删除的是 Vertex 的
.torrent缓存文件,不是下载器里的真实下载资源。 - 如果不确定是否要全部删除,建议先删除 30 天以前的缓存。
- 清理前可以先执行
du -h --max-depth=1 ./vertex | sort -h,确认到底是哪一个目录占用大。 - 如果
./vertex/db占用大,可能是数据库或备份文件占用,需要单独分析,不建议直接删除整个db目录。 - 如果
./vertex/logs占用大,可以单独清理日志文件。 - 不建议直接删除整个
./vertex目录,否则可能导致 Vertex 配置、数据库、站点信息丢失。
十四、总结
Vertex Docker 长期运行后,./vertex/torrents 目录可能会积累大量 .torrent 种子缓存文件,导致服务器磁盘占用变大。
推荐处理方式:
先查看占用 → 确认 torrents 目录是否过大 → 删除 30 天以前的种子缓存 → 配置 crontab 定时清理
常用清理命令:
cd /opt/docker/vertex
find ./vertex/torrents -type f -name "*.torrent" -mtime +30 -delete
find ./vertex/torrents -type d -empty -delete
常用定时任务:
0 4 * * 0 find /opt/docker/vertex/vertex/torrents -type f -name "*.torrent" -mtime +30 -delete && find /opt/docker/vertex/vertex/torrents -type d -empty -delete
这样可以避免 Vertex 种子缓存长期堆积,占满服务器磁盘空间。
评论区