• aliyunpan-sync能让阿里云盘支持同步备份


    在这里插入图片描述

    什么是 aliyunpan-sync ?

    aliyunpan-sync阿里云盘命令行同步备份客户端,支持备份本地文件到云盘,备份云盘文件到本地,双向同步备份三种模式。支持 JavaScript 插件对备份文件进行过滤。

    安装

    群晖上以 Docker 方式安装。

    在注册表中搜索 tickstep ,选择第二个 tickstep/aliyunpan-sync,版本选择最新的就行,老苏安装的时候是 v0.2.3

    x86 平台之外,还支持 arm 平台;

    为了测试,老苏在 docker 中新建了一个目录 photo,然后拷入了一些照片

    在这里插入图片描述

    文件夹装载路径说明
    /home/app/data本地目录绝对路径,例如:/tickstep/Documents/设计文档

    在这里插入图片描述

    端口

    和以往不同,这次不需要端口

    环境

    老苏在阿里云盘建了一个空的 photo 目录

    你也可以用不设置,直接使用默认的 /sync_drive

    在这里插入图片描述

    可变
    ALIYUNPAN_PAN_DIR云盘目录,默认值为 /sync_drive
    ALIYUNPAN_REFRESH_TOKENRefreshToken,默认值为空
    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 ":/home/app/data" \
       -e ALIYUNPAN_REFRESH_TOKEN="" \
       -e ALIYUNPAN_PAN_DIR="" \
       -e ALIYUNPAN_SYNC_MODE="upload" \
       tickstep/aliyunpan-sync:<tag>
    
    # 示例
    docker run -d \
       --name=aliyunpan-sync \
       --restart=always \
       -v "/volume2/docker/photo:/home/app/data" \
       -e ALIYUNPAN_REFRESH_TOKEN="e1ee195132d6409999f646fb5da9ef6c" \
       -e ALIYUNPAN_PAN_DIR="/photo" \
       -e ALIYUNPAN_SYNC_MODE="upload" \
       tickstep/aliyunpan-sync:v0.2.3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    docker-compose 安装

    建议采用 docker-compose 安装,因为示例比较完整;

    将下面的内容保存为 docker-compose.yml 文件

    version: '3'
    
    services:
      sync:
        image: tickstep/aliyunpan-sync:>
        container_name: aliyunpan-sync
        restart: always
        volumes:
          # 指定本地备份目录绝对路径:/volume2/docker/photo
          - >:/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=>
          # 上传下载链接类型: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=>
          # 备份模式: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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    有几处需要修改:

    • :作者没有提供 latest 标签,所以安装前请查一下最新的版本号,目前是 v0.2.3
    • :是本地备份目录的绝对路径,你要按自己的需要进行修改,老苏的示例中是 /volume2/docker/photo

    在这里插入图片描述

    • :只指你的阿里云盘中获取的 refreshToken 值;
    • :云盘目录,默认值为 /sync_drive

    然后执行下面的命令

    # 新建文件夹 async 和 子目录
    mkdir -p /volume2/docker/async/sync_drive
    
    # 进入 async 目录
    cd /volume2/docker/async
    
    # 将 docker-compose.yml 放入当前目录
    
    # 一键启动
    docker-compose up -d
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    因为包含了中文注释,记得保存时一定要用 UTF-8 编码

    在这里插入图片描述

    运行

    打开容器的日志会看到阿里云盘登录成功的提示

    在这里插入图片描述

    刷新阿里云盘,会看到照片都同步过来了

    在这里插入图片描述

    开启 ALIYUNPAN_SYNC_LOG=true 后,日志中能看到文件传输的信息

    在这里插入图片描述

    小结

    注意:如果同步目录下有非常多的文件,最好在首次备份前先运行一次 scan 任务,等 scan 任务完成并建立起同步数据库后,再正常启动同步任务。这样同步任务可以更加快速同步并且能有效避免同步重复文件。

    aliyunpan-sync 支持很多常用的命令,可以在容器内运行,例如:

    # 查看同步备份功能说明
    ./aliyunpan sync
    
    • 1
    • 2

    在这里插入图片描述

    也可以在命令执行

    # 进入容器
    docker exec -it --user root aliyunpan-sync /bin/sh 
    
    # 查看同步备份功能说明
    ./aliyunpan sync
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    更多的命令可以去查阅官方文档: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

  • 相关阅读:
    责任链模式与spring容器的搭配应用
    【第一阶段:java基础】第5章:数组、排序、查找
    【项目】若依整合mybatisplus和lombok
    【Java-LangChain:使用 ChatGPT API 搭建系统-4】评估输入-分类
    Rabbitmq部署
    【Linux】C文件系统详解(二)——什么是fd文件描述符以及理解“一切皆文件“
    项目复习:基于UDP的网络聊天室
    AI+游戏线下沙龙活动暨COC上海城市开发者社区8月活动
    K8s(Kubernetes)学习(四):Controller 控制器:Deployment、StatefulSet、Daemonset、Job
    spring链路 sleuth zipkin
  • 原文地址:https://blog.csdn.net/wbsu2004/article/details/127799899