【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步

玩技站长
玩技站长
管理员, Keymaster
7162
文章
1
粉丝
软件头条评论5字数 748阅读2分29秒阅读模式

【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片1

简介

  • alist可以轻松挂载各大主流云盘,并转换成webdav服务
  • rclone同样支持很多云存储驱动,包括webdav,可以实现增量数据同步,高效便捷
  • alist搭配rclone,可以实现本地与本地、本地与云盘、云盘与云盘之间的数据同步,保证数据存储安全
  • 下面是实现nas本地文件同步阿里云盘数据的操作用例

第一步:安装alist,并且把阿里云盘指定目录挂在到alist

  • docker安装alist,新建配置文件docker-compose.yml,配置如下:
    version: '3'
    services:
        alist:
            image: 'xhofe/alist:latest'
            volumes:
                - ./data:/opt/alist/data
            ports:
                - '5244:5244'
            environment:
                - PUID=0
                - PGID=0
                - UMASK=022
                - TZ=Asia/Shanghai
            restart: unless-stopped
  • 一键启动运行
    docker-compose up -d
  • 获取默认登录账号密码
    docker-compose logs

    【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片2

  • 登录alist后台,添加阿里云盘open驱动,设置刷新token,具体参考官方指导:https://alist.nn.ci/zh/guide/drivers/aliyundrive_open.html
    • 添加阿里云盘open驱动和挂在路径
      【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片2
    • webdav策略使用“本地代理”
      【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片2
    • 设置阿里云盘的刷新token,指定挂载的根目录
      【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片2
    • 挂载上了
      【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片2
    • 因为要用到alist提供的webdav服务,所有需要开启用户webdav权限
      【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片2

第二步:安装rclone,配置alist提供的webdav服务

  • 具体同步逻辑如下图所示
    【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片2
  • 安装配置可参考:https://github.com/luler/rclone_docker ,拉代码,进入目录
    //拉代码
    git clone https://github.com/luler/rclone_docker.git
    //进入目录  
    cd rclone_docker
  • 修改config/rclone.conf,配置远程存储驱动,这里使用webdav为例,其他驱动请参考rclone官方文档:https://rclone.org/docs/
    rclone要求webdav的密码不能直接使用明文,需要加密一下

    docker run --rm -it ghcr.io/luler/rclone_docker:latest rclone obscure "fUlaQHte"

    【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片3
    config/rclone.conf配置内容如下:

    [mywebdav]
    type = webdav
    url = http://192.168.1.105:5244/dav/ # 这里填写alist的webdav地址,要填容器内可以访问alist的ip或域名
    vendor = other # 一般默认这个即可
    user = admin  # webdav用户名
    pass = a-Zsy2HhSSgMYC40dG_WevAGFMaUFzys  # webdav密码,注意:这里需要使用rclone的混淆密码,如:rclone obscure "你的明文密码"
    #no_check_certificate=true  # 如果需要跳过SSL验证
  • 修改config/crontab,配置定时任务,如下示例:
    # 每分钟执行备份,flock防止重复执行
    * * * * * flock -n /tmp/rclone.lock rclone sync mywebdav:我的阿里云盘目录/ /data --log-file=/var/log/rclone-sync.log --log-level=INFO --stats=10m
  • 配置好了之后,代码目录下已配置好docker-compose.yml,使用docker-compose一键启动即可
    docker-compose up -d
  • 查询执行情况
    docker-compose logs

    成功执行完毕
    【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片4

    云盘数据已被同步下来
    【开源项目】技术实践:rclone+alist 组合拳,轻松搞定 NAS 与阿里云盘数据同步-图片5

    如果失败,可以打开rclone的日志文件logs/rclone-sync.log,以便分析原因

总结

  • 普通阿里云盘用户有下载限速,如果数据很大,第一次rclone同步会耗时很久,第一次完成后,后续就是增量同步了
  • 本用例只是一个简单用例,类似的,使用alist、rclone还可以扩展到更多使用场景

 最后更新:2025-10-25
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证