什么是 aliyunpan-sync ?
aliyunpan-sync
是阿里云盘命令行同步备份客户端,支持备份本地文件到云盘,备份云盘文件到本地,双向同步备份三种模式。支持
JavaScript
插件对备份文件进行过滤。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索
tickstep
,选择第二个
tickstep/aliyunpan-sync
,版本选择最新的就行,老苏安装的时候是
v0.2.3
。
除
x86
平台之外,还支持
arm
平台;
卷
为了测试,老苏在
docker
中新建了一个目录
photo
,然后拷入了一些照片
文件夹装载路径说明
<your local dir>
/home/app/data
本地目录绝对路径,例如:
/tickstep/Documents/设计文档
端口
和以往不同,这次不需要端口
环境
老苏在阿里云盘建了一个空的
photo
目录
你也可以用不设置,直接使用默认的
/sync_drive
可变值
ALIYUNPAN_PAN_DIR
云盘目录,默认值为
/sync_drive
ALIYUNPAN_REFRESH_TOKEN
RefreshToken
,默认值为空
ALIYUNPAN_SYNC_MODE
备份模式,支持三种:
upload
(备份本地文件到云盘),
download
(备份云盘文件到本地),
sync
(双向同步备份)
默认
ALIYUNPAN_REFRESH_TOKEN
是空的
refresh token
的获取方法可以参考 『 能将阿里云盘挂载为webdav的webdav-aliyundriver 』
要是你懒得看也没关系,作者贴心的提供了一张图
填入正确的
RefreshToken
就可以了
docker cli 安装
如果你熟悉命令行,可能用
docker cli
更快捷
# 运行容器docker run -d\--name=aliyunpan-sync \--restart=always \-v"<your local dir>:/home/app/data"\-eALIYUNPAN_REFRESH_TOKEN="<your refreshToken>"\-eALIYUNPAN_PAN_DIR="<your drive pan dir>"\-eALIYUNPAN_SYNC_MODE="upload"\
tickstep/aliyunpan-sync:<tag># 示例docker run -d\--name=aliyunpan-sync \--restart=always \-v"/volume2/docker/photo:/home/app/data"\-eALIYUNPAN_REFRESH_TOKEN="e1ee195132d6409999f646fb5da9ef6c"\-eALIYUNPAN_PAN_DIR="/photo"\-eALIYUNPAN_SYNC_MODE="upload"\
tickstep/aliyunpan-sync:v0.2.3
docker-compose 安装
建议采用
docker-compose
安装,因为示例比较完整;
将下面的内容保存为
docker-compose.yml
文件
version:'3'services:sync:image: tickstep/aliyunpan-sync:<tag>container_name: aliyunpan-sync
restart: always
volumes:# 指定本地备份目录绝对路径:/volume2/docker/photo- <your local dir>:/home/app/data:rw
# (可选)可以指定JS插件sync_handler.js用于过滤文件,详见下面的插件说明#- ./plugin/js/sync_handler.js:/home/app/config/plugin/js/sync_handler.js# (推荐)挂载sync_drive同步数据库到本地,这样即使容器销毁,同步数据库还可以用于以后使用- ./sync_drive:/home/app/config/sync_drive
environment:- TZ=Asia/Shanghai
# refresh token- ALIYUNPAN_REFRESH_TOKEN=<your refreshToken># 上传下载链接类型:1-默认 2-阿里ECS环境- ALIYUNPAN_TRANSFER_URL_TYPE=1
# 下载文件并发数- ALIYUNPAN_DOWNLOAD_PARALLEL=2
# 上传文件并发数- ALIYUNPAN_UPLOAD_PARALLEL=2
# 下载数据块大小,单位为KB,默认为10240KB,建议范围1024KB~10240KB- ALIYUNPAN_DOWNLOAD_BLOCK_SIZE=1024
# 上传数据块大小,单位为KB,默认为10240KB,建议范围1024KB~10240KB- ALIYUNPAN_UPLOAD_BLOCK_SIZE=10240
# 指定网盘文件夹作为备份目录,不要指定根目录- ALIYUNPAN_PAN_DIR=<your drive pan dir># 备份模式:upload(备份本地文件到云盘), download(备份云盘文件到本地), sync(双向同步备份)- ALIYUNPAN_SYNC_MODE=upload
# 优先级,只对双向同步备份模式有效。选项支持三种: time-时间优先,local-本地优先,pan-网盘优先- ALIYUNPAN_SYNC_PRIORITY=time
# 是否显示文件备份过程日志,true-显示,false-不显示- ALIYUNPAN_SYNC_LOG=true
# 本地文件修改检测延迟间隔,单位秒。如果本地文件会被频繁修改,例如录制视频文件,配置好该时间可以避免上传未录制好的文件- ALIYUNPAN_LOCAL_DELAY_TIME=3
# 任务步骤, 支持两种: scan(只扫描并建立同步数据库),sync(正常启动同步任务)- ALIYUNPAN_TASK_STEP=sync
有几处需要修改:
<tag>
:作者没有提供latest
标签,所以安装前请查一下最新的版本号,目前是v0.2.3
;<your local dir>
:是本地备份目录的绝对路径,你要按自己的需要进行修改,老苏的示例中是/volume2/docker/photo
;
<your refreshToken>
:只指你的阿里云盘中获取的refreshToken
值;<your drive pan dir>
:云盘目录,默认值为/sync_drive
然后执行下面的命令
# 新建文件夹 async 和 子目录mkdir-p /volume2/docker/async/sync_drive
# 进入 async 目录cd /volume2/docker/async
# 将 docker-compose.yml 放入当前目录# 一键启动docker-compose up -d
因为包含了中文注释,记得保存时一定要用
UTF-8
编码
运行
打开容器的日志会看到阿里云盘登录成功的提示
刷新阿里云盘,会看到照片都同步过来了
开启
ALIYUNPAN_SYNC_LOG=true
后,日志中能看到文件传输的信息
小结
**注意:如果同步目录下有非常多的文件,最好在首次备份前先运行一次
scan
任务,等
scan
任务完成并建立起同步数据库后,再正常启动同步任务。这样同步任务可以更加快速同步并且能有效避免同步重复文件。**
aliyunpan-sync
支持很多常用的命令,可以在容器内运行,例如:
# 查看同步备份功能说明
./aliyunpan sync
也可以在命令执行
# 进入容器dockerexec-it--user root aliyunpan-sync /bin/sh
# 查看同步备份功能说明
./aliyunpan sync
更多的命令可以去查阅官方文档:https://github.com/tickstep/aliyunpan/blob/main/docs/manual.md#常用命令说明
另外,作者还有了一个将阿里云盘变身为
WebDAV
协议文件服务器的镜像
tickstep/aliyunpan-webdav
,需要的也可以去看看
参考文档
tickstep/aliyunpan: 阿里云盘命令行客户端,支持webdav文件服务,支持JavaScript插件,支持同步备份功能。
地址:https://github.com/tickstep/aliyunpan
aliyunpan/manual.md at main · tickstep/aliyunpan
地址:https://github.com/tickstep/aliyunpan/blob/main/docs/manual.md
tickstep/aliyunpan-sync - Docker Image | Docker Hub
地址:https://hub.docker.com/r/tickstep/aliyunpan-sync
版权归原作者 杨浦老苏 所有, 如有侵权,请联系我们删除。