通过 rclone 自动备份 Lsky Pro(兰空图床)数据至 OneDrive
这是一篇关于如何在远程 Linux 服务器上通过 rclone 自动备份 Lsky Pro(兰空图床)数据至 OneDrive 的技术指南。
方案简介
本方案通过 Shell 脚本集成 mariadb-dump 数据库导出、tar 文件压缩及 rclone 同步功能。适用于 Docker 部署且无法直接使用浏览器进行 OAuth 授权的远程服务器。
我目前的安装环境为:Debian GNU/Linux 13 (trixie)+1Panel面板,docker部署的Lsky pro和对应数据库 mariadb,见图:

备份核心数据列表
| 数据类型 | 路径/来源 | 重要性 |
|---|---|---|
| 数据库 | 容器内 mariadb-dump 导出 |
高(包含所有图片索引与用户数据) |
| 配置文件 | /data/lsky-pro/.env |
高(包含 APP_KEY,丢失将导致无法解析图片路径) |
| 存储数据 | /data/lsky-pro/storage/app/uploads |
高(所有原图文件) |
| 安装锁 | /data/lsky-pro/installed.lock |
中(防止重复触发初始化安装) |
第一步:远程服务器配置 Rclone
由于远程服务器无法打开浏览器,需采用“授权传递”模式。
服务器端启动配置:
执行
rclone config,创建名为onedrive的配置。在Use auto config?处输入n。本地端获取 Token:
在本地电脑(Windows/Mac)下载 rclone,运行服务器给出的命令:
rclone authorize "onedrive" "XXXXXXXX"完成授权:
将本地浏览器授权后生成的 JSON Token 粘贴回服务器。
rclone具体配置方法
注意:博主Onedrive账号为office 365,以下实际使用以此为例
安装:
1 | curl https://rclone.org/install.sh | sudo bash |
1. 远程服务器端操作
执行
rclone config。输入
n新建配置,命名为onedrive。Storage 选择
Microsoft OneDrive(通常编号在 30 左右,请核对列表)。client_id和client_secret:直接回车跳过(使用默认值)。region:选择global(通常是1):经实际使用,一定要选1,虽然4有365和china字样,不要选4关键步骤: 当出现
Use auto config?时,输入n(即:Edit advanced config? [y/n] n之后,询问Use auto config?时选n)。此时服务器会显示一行命令,类似:
rclone authorize "onedrive" "XXXXXXXXX"
2. 本地电脑操作 (Windows/Mac)
在你的本地电脑(有浏览器的机器)上下载 rclone ,如果为mac或linux直接使用上述脚本安装即可。
打开终端(CMD、PowerShell 或 Terminal)。
输入服务器上给出的那行命令:
1
rclone authorize "onedrive" "XXXXXXXXX"
此时本地电脑会自动弹出浏览器,登录你的 OneDrive 账号并点击“授权”。

授权成功后,本地终端会返回一段 JSON 格式的 Token(以
{"access_token":...}开头)。
复制这段完整的 JSON 字符串。
3. 返回远程服务器完成配置
将本地获取的 Token 粘贴回服务器的
result>提示符处。Your choice>:选择OneDrive Personal or Business(通常是1)。Chose drive to use:rclone 会列出检测到的盘符,具体可打开网页版onedrive,下面的字符与浏览器地址对应上即可。
Is that OK?:确认配置,输入y。退出配置。
4. 验证连接
在服务器上执行以下命令,看是否能列出文件:
1 | rclone lsd onedrive: |

第二步:编写自动化备份脚本
在服务器创建脚本文件,例如 /root/my_shells/lsky_backup.sh。脚本同时上传至zhyong26/Mac_shells: 个人使用脚本
注意查看脚本备注,需根据实际修改
1 |
|
第三步:设置定时任务 (Crontab)
配置脚本每天凌晨 02:00 自动执行。
赋予执行权限:
chmod 700 /root/my_shells/lsky_backup.sh编辑 Crontab:
输入
crontab -e并添加以下行:1
00 02 * * * /bin/bash /root/my_shells/lsky_backup.sh > /dev/null 2>&1
首先执行一次,脚本,即可在onedrive上查看备份好的文件了,这样再也不怕珍贵的图片丢失了。

下载下来后,可查看备份目录。上述所列的四个重要文件,包括数据库就全部备份好了。

关键技术点提示
- 权限安全:脚本内包含明文密码,必须通过
chmod 700确保仅 Root 用户可读。 - 容器执行环境:
mariadb-dump命令在容器内执行,若容器镜像非 MariaDB(如 MySQL),请根据实际镜像名调整命令。 - 配置文件路径:在 Crontab 中运行脚本时,环境变量与登录 Shell 不同,脚本中应使用绝对路径引用
rclone.conf。 - 数据完整性:建议定期从 OneDrive 下载备份包,并在本地测试环境中尝试恢复,以验证备份的有效性。
AI 总结 (Qwen API)
生成时间: 2026-02-19 16:12:25
深度总结:
本文是一篇面向运维实践者的生产级图床数据容灾方案指南,聚焦于 Lsky Pro(兰空图床)在 Docker 环境下的全量自动化备份体系构建。其核心价值不仅在于“如何备份”,更在于系统性解决了远程无图形界面服务器(如 VPS)对接 OneDrive 这类需 OAuth 交互的云存储所面临的授权断点难题——通过创新采用“本地授权 + Token 传递”模式,绕过传统 rclone config --auto 的浏览器依赖限制,实现安全、可复现的配置闭环。
技术方案采用分层备份策略:
✅ 数据库层:通过 docker exec 调用容器内 mariadb-dump 实现一致性逻辑备份(规避文件锁与事务不一致风险);
✅ 配置层:精准提取 .env(含关键 APP_KEY,丢失将导致所有图片 URL 解析失败);
✅ 静态资产层:压缩 uploads/ 目录保障原始图片完整性;
✅ 状态控制层:保留 installed.lock 防止误恢复引发重复初始化。
脚本设计强调健壮性与可维护性:包含 SQL 导出校验、绝对路径显式声明、环境变量隔离处理(适配 Crontab)、自动清理策略(30 天远端保留),并嵌入关键安全提示(如密码明文保护、权限最小化 chmod 700)。整套流程已验证于 Debian 13 + 1Panel + Docker 栈,具备强落地性与跨平台参考价值。
核心关键词标签(3–5个):
#rclone #LskyPro #自动化备份 #OneDrive同步 #Docker运维