跳至主要内容

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

 

简介

  • 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

  • 登录alist后台,添加阿里云盘open驱动,设置刷新token,具体参考官方指导:https://alist.nn.ci/zh/guide/drivers/aliyundrive_open.html

    • 添加阿里云盘open驱动和挂在路径

    • webdav策略使用“本地代理”

    • 设置阿里云盘的刷新token,指定挂载的根目录

    • 挂载上了

    • 因为要用到alist提供的webdav服务,所有需要开启用户webdav权限

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

  • 具体同步逻辑如下图所示

  • 安装配置可参考: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"


    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的日志文件logs/rclone-sync.log,以便分析原因

总结

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

评论

此博客中的热门博文

电脑里的AI帮手:Open Interpreter智能助手食用指南

一、简介 interpreter是一个使用python开发的命令行工具,可以让你在终端中使用类似AI对话的方式,只需简单输入指令要求,即可自动编写程序、执行代码,实现各种自动化操作 interpreter有自动检测输出结果、自动错误修复功能,保证指令执行的可靠运行 具有权限控制与执行确认机制,确保敏感命令不会立即执行(默认开启,但可以关闭) 支持接入各种模型,操作简单,一行命令即可唤起 二、安装 确保本地安装有python、pip等环境 一键安装 pip install open -interpreter 安装完成,查看命令是否可用,运行interpreter -h输出如下: $ interpreter -h 用法: interpreter [选项] Open Interpreter(开放解释器) 选项: -h, --help 显示帮助信息并退出 -p PROFILE, --profile PROFILE 配置文件名。运行` --profiles`可打开配置目录 -ci CUSTOM_INSTRUCTIONS, --custom_instructions CUSTOM_INSTRUCTIONS 语言模型的自定义指令。会追加到系统消息中 -sm SYSTEM_MESSAGE, --system_message SYSTEM_MESSAGE (不建议修改)语言模型的基础提示词 -y, --auto_run 自动运行生成的代码 -nhl, --no_highlight_active_line 关闭代码块中当前行的语法高亮 -v, --verbose 打印详细日志 -m MODEL, --model MODEL 使用的语言模型 -t TEMPERATURE, --temperature TEMPERATURE 语言模型的可选温度参数 -lsv, --llm_supports_v...

跨浏览器书签同步方案:WebDAV + Floccus插件实操指南

  一、简介 Floccus 是一个允许用户在不同浏览器和设备之间私密同步书签的扩展,开源地址: https://github.com/floccusaddon/floccus WebDAV是一种基于HTTP的协议,支持远程文件管理,支持basic授权,部署简单,可以docker私有化部署,也可以选择支持webdav的云盘服务,如坚果云,本文选用私有部署的方式 Floccus支持很多书签数据私有化存储方式,包括webdav,配置接入简单 二、安装 1.安装webdav服务 我这里选择webdav这种方式,只要拥有webdav功能的服务就可以,比如: 坚果云 : https://www.jianguoyun.com/ ,提供webdav服务,路径:账户信息=>安全选项=》添加应用,就可以使用坚果云相关webdav配置来设置floccus了 alist :开源项目alist也提供webdav服务,参考官方说明: https://alist-doc.nn.ci/docs/webdav/。因为alist支持挂载各种云盘 ,所以这种方式可以同步到更多云盘。alist私有部署可参考文章: https://blog.luler.top/d/21 其他支持webdav的服务,如下可以使用docker一键部署wendav : a. 提前安装好docker、docker-compose环境(这里不做讲解) b. 新建docker-compose.yml文件,配置内容如下: 复制 version: '3' services: webdav: image: bytemark/webdav restart: always ports: - "8080:80" environment: AUTH_TYPE: Basic USERNAME: admin #这里basic认证账号 PASSWORD: admin123 #这里basic认证密码 volumes: - ./dav:/var/lib/dav #数据持久化 c. 运行启动 复制 docker-compose up -d d. 访问: http:/...

高效网页截图利器:支持长截图、异步加载内容截图、API调用、Docker一键部署!

  一、简介 利用playwright自动化工具,模拟浏览器打开网页,实现完整网页截图功能 支持长截图,支持异步加载动态渲染内容截图 支持docker一键部署 支持API调用 项目地址: https://github.com/luler/hello_screenshot 二、安装 提前安装好docker、docker-compose环境(自行安装,不做赘述) 新建docker-compose.yml文件,内容如下: 复制 version: '3' services: hello_screenshot: image: ghcr.io/luler/hello_screenshot:latest privileged: true ports: - 14140 :14140 一键启动命令 复制 docker-compose up -d 三、使用示例 直接访问页面即可使用,页面地址: http://localhost:14140/  , 页面截图如下: 输入页面地址,点击抓取按钮就可实现网页截图,如下: 使用API调用方式实现截图 接口: GET:   http://localhost:14140//screenshot 请求参数 字段 类型 是否必填 简介 url string 是 需要截图的目标网页地址 viewport_width int 否 浏览器视窗宽度(单位px),默认:1280 viewport_height int 否 浏览器视窗高度(单位px),默认:720 wait_second int 否 打开页面后等待秒数,默认:0,如果有些页面的数据是异步请求获取的,这里才需要设置等待获取时间 full_page int 否 是否长截图整个网页,0-否(默认),1-是 postman请求示例: 四、演示地址 地址参考: https://cas.luler.top/?search=664f16483a8d2 五、总结 一个专注于网页截图的小工具,安装和使用都非常简单 因为有便于集成的API调用功能,可以轻松集成到一些需要网页截图、内容存档等功能的应用