alist网盘自动同步
- alist可以设置目录定时转存到各个网盘,做到夸网盘,多备份的效果
- 可以将自己挂载的alist 下的各个目录相互间进行同步,原理是采用alist原始api调用执行
- 同步原理1.匹配文件名称是否相同,2.文件大小是否相同,相同会跳过同步,不同会将目标文件删除后再进行文件同步
- 目前存在的一个问题,有文件会随机同步失败,但同一个文件不会一直同步失败,建议每天同步一次,可以将同步漏了的文件补上
参数
bash
BASE_URL 服务器基础URL(结尾不带/)
USERNAME 用户名
PASSWORDd 密码
DIR_PAIRS 源目录和目标目录的配对(源目录和目标目录的配对,用分号隔开,冒号分隔)
CRON_SCHEDULE 调度日期,参考cron语法 "分 时 日 月 周" 非必填,不填为一次调度
demo
bash
docker run -d --name alist-sync \
-e TZ=Asia/Shanghai \
-e BASE_URL=http://192.168.xxx.xx:5244 \
-e USERNAME=xxx \
-e PASSWORD=xxx \
-e DIR_PAIRS=/dav/aliyundrive/同步目录/工作:/dav/quark/同步目录1/工作;/dav/quark/同步目录1/工作:/dav/aliyundrive/同步目录/工作 \
-e "CRON_SCHEDULE=5 16 * * *" \
xjxjin/alist-sync:latest
docker-compose.yml
bash
name: alist-sync
services:
alist-sync:
container_name: alist-sync
environment:
- TZ=Asia/Shanghai
- BASE_URL=http://192.168.xxx.xx:5244
- USERNAME=xxx
- PASSWORD=xxx
- DIR_PAIRS=/dav/aliyundrive/同步目录/工作:/dav/quark/同步目录1/工作;/dav/quark/同步目录1/工作:/dav/aliyundrive/同步目录/工作
- CRON_SCHEDULE=5 16 * * *
image: xjxjin/alist-sync:latest
- 这个的意思是 需要将
- 源目录 /dav/aliyundrive/同步目录/工作 下的文件夹以及文件,同步到目标目录/dav/quark/同步目录1/工作 下
- 源目录/dav/quark/同步目录1/工作,同步到目标目录/dav/aliyundrive/同步目录/工作下
- 也就是说两个目录相互备份
注意 DIR_PAIRS格式为 ,用分号隔开,冒号分隔,英文冒号,英文分号
执行完成后可以在复制页面查看进度
2024-05-13更新
1.新增文件存在判断逻辑
- 文件名称
- 文件大小
2.CRON_SCHEDULE 变更为参数可选
- 当参数不传变更为一次调度,可以配合青龙远程调度