☰
Ludusavi 云备份完全指南:如何用 Rclone 把游戏存档同步到云端
2026/10/22 1:32:04 网站建设 项目流程

Ludusavi 云备份完全指南:如何用 Rclone 把游戏存档同步到云端

【免费下载链接】ludusaviBackup tool for PC game saves项目地址: https://gitcode.com/GitHub_Trending/lu/ludusavi

游戏存档只存在这一台机器上,磁盘故障、系统重装、搬家用新电脑,任何一次意外都足以让几百小时的进度清零。Ludusavi 云备份把本地备份目录同步到云端,给存档上一道异地容灾的保险。读完这篇指南,你能为 Ludusavi 接上一家云端存储、跑通第一次自动上传,还会处理云端冲突、调快同步速度。

第一次把备份送进云:GUI 五步走

用图形界面是最省事的路径。打开 Ludusavi,顶部切到 OTHER 页签:

  1. 在远程类型下拉框里选一家服务商,比如 Google Drive;
  2. 按提示补齐凭据(OAuth 类服务会弹出浏览器授权,FTP/SMB/WebDAV 则填主机、用户名、密码);
  3. 云路径(Cloud folder)保持默认ludusavi-backup即可;
  4. 确认自动同步(synchronize)开关处于开启状态,它默认就是开的;
  5. 保存后点一次上传,第一份备份就进了云。

保存前界面会实时校验两件事:remote 是否已配置、云路径是否合法(空字符串和单独的/都会被判为非法),不满足时给出对应的cloud not configured或cloud path invalid警告。

偏爱命令行的话,一条命令就能完成远程配置:

ludusavi cloud set google-drive

它会打开浏览器让你授权,随后把生成的 remote 写进配置。之后执行一次备份,开启的自动同步就会在备份完成后把变更推上去;也可以直接手动推:ludusavi cloud upload --force。

同步引擎幕后:Ludusavi 给 Rclone 发了什么指令

Ludusavi 自己不对接任何云协议,它把 Rclone 当外部引擎用:先本地备份,再用rclone sync把backup.path指向的目录与云端对齐。真正的命令构造与进程管理在 src/cloud.rs,一次同步长这样:

rclone sync -v --use-json-log --stats=100ms \ [--dry-run] [--include=/<游戏目录>/**] <本地目录> <remote_id>:<云路径>

围绕这条命令,有几个值得知道的细节:

  • 进度从 JSON 日志里来:--use-json-log让 Rclone 逐行吐 JSON,Ludusavi 解析其中三类信息——msg、skip、stats。Copied (new)记为新增(New),Copied (replaced existing)和skip copy记为内容差异(Different),Deleted和skip delete记为删除(Removed);stats里的bytes/total_bytes驱动进度条。
  • 按游戏过滤:只想同步部分游戏时,每个游戏追加一条--include=/<游戏目录>/**。Rclone 的包含规则是文件级的,所以末尾的**不能省。
  • 远程路径规整:云端一侧统一写成remote_id:路径的形式,并且把\全部替换成/,以符合 Rclone 非本地路径的语法。
  • 退出码即成败:进程以退出码0判定成功;非零退出时会收集 stdout/stderr 组成错误。上传前如果发现本地目录不存在(此时 Rclone 会以退出码 3 失败),Ludusavi 会先自动创建该目录。

Ludusavi 能接哪些云:远程类型与填表字段

任何 Rclone remote 都能用,Ludusavi 额外给常见服务配了填写辅助。官方验证过的版本是 Rclone 1.62.2,其他版本一般也能正常工作。

你在 GUI 里选的Rclone 后端(slug)需要你填的字段
Custom无(id指向一个已存在的 Rclone remote)id
Boxboxid
Dropboxdropboxid
Google Drivedriveid
OneDriveonedriveid
FTPftpid、host、port、username、password
SMBsmbid、host、port、username、password
WebDAVwebdavid、url、username、password、provider

保存远程时,Ludusavi 会用rclone config create <id> <slug> <参数...>把参数一次性写入 Rclone 配置;切换远程时则用rclone config delete <id>清掉旧配置。除id之外,各类型自动附加的参数是:

类型自动附加的 Rclone 参数
Google Drivescope=drive
OneDrivedrive_type=personal、access_scopes=Files.ReadWrite,offline_access
FTP / SMBhost、port、user、pass
WebDAVurl、user、pass、vendor
Box / Dropbox / Custom无

密码混淆、自动 remote id 与 WebDAV 服务商

三个安全相关的机制值得单独说清:

  • 密码先混淆再落盘:FTP、SMB、WebDAV 的密码写入配置前会先调用rclone obscure加密,相关执行日志按私密信息处理;Google Drive、OneDrive、Box、Dropbox 走 OAuth,配置文件里只存 remoteid。
  • remote id 自动防撞:除 Custom 外,id由程序生成,形如ludusavi-<Unix 时间戳>,避免和已有 remote 重名。
  • WebDAV 服务商细分:provider字段对应 Rclone WebDAV 的vendor参数,共五个取值——other(默认)、nextcloud、owncloud、sharepoint、sharepoint-ntlm。

云端冲突时先下载还是先上传:自动同步的裁决逻辑

cloud.synchronize打开后,每次备份开始时 Ludusavi 先做一次"预检":以上传方向 + dry-run的方式跑一遍 sync,看本地和云端是否已经一致。

  • 预检无任何变更:两边一致,备份完成后自动把变更上传。
  • 预检发现云端有差异(即两边本来就不一致),进入冲突分支,行为取决于你指定的方向:
指定方向行为出错时的错误字段
未指定不自动同步,云端数据保持原样errors.cloudConflict
Download先把云端内容下载到本地,再执行本次备份(保证mapping.yaml等元数据连贯)预下载失败则errors.cloudSyncFailed
Upload先完成本地新备份,随后无论如何都强制上传一次上传失败则errors.cloudSyncFailed

备份落盘后的收尾阶段,只对本次有实际备份产物的游戏执行上传同步;同步失败同样上报errors.cloudSyncFailed。这两个字段在 API 输出模式中都有对应定义,脚本可以据此判断是否需要人工介入。

真遇到冲突,建议动作很直接:回到 OTHER 页签手动执行一次上传或下载,把两边对齐。

手动上传下载与脚本化:cloud upload / cloud download

GUI 之外,CLI 提供了一对对称子命令:

ludusavi cloud upload [--local <路径>] [--cloud <路径>] [--force] [--preview] [--api] [--gui] [游戏名...] ludusavi cloud download [--local <路径>] [--cloud <路径>] [--force] [--preview] [--api] [--gui] [游戏名...]
参数含义
--local本地备份目录;缺省取配置中的backup.path
--cloud云端备份目录;缺省取cloud.path(默认ludusavi-backup)
--force跳过确认提示
--preview只预览将发生的变化,对应 Rclone 的--dry-run
--api输出机器可读 JSON,替代人类可读输出
--gui用 GUI 对话框做提示
游戏名...只同步指定游戏,也支持从 stdin 逐行传入

执行流程(src/cli.rs 中的sync_cloud):校验 Rclone 配置与云路径 → 把游戏名映射为备份布局里的目录名 → 启动 Rclone 子进程 → 循环消费进度事件刷新进度条 → 按退出码判定成败。期间按 Ctrl+C(SIGINT)会立即 kill 子进程并退出。

用--api时,输出顶层有个cloud对象,以"相对于云文件夹的文件路径"为键,列出每个文件的同步结果;每条结果里还带一个与云端(上传时)或本地(下载时)版本比较的字段,方便你在脚本里判断这次同步到底动了什么。

同步太慢?试试这几组引擎参数

云同步速度受带宽、云端服务状态和 Rclone 自身限制共同影响。嫌慢的话,在 OTHER 页签的参数框或config.yaml的apps.rclone.arguments里加自定义参数:

参数适用场景
--fast-list文件多、目录深的备份集,用更少的内存批量列举远程目录,提速明显
--ignore-checksum跳过哈希校验、只按大小和修改时间判断差异,显著加速
--transfers=1并发压到 1,规避部分服务商的限流,但整体速度会变慢

arguments默认是空字符串,官方配置模式里的示例起步写法就是--fast-list --ignore-checksum。注意这些参数作用于每一次Rclone 调用——包括sync,也包括config create、obscure这类配置命令。它们经 shell 分词后置于命令最前,Ludusavi 自身追加的参数在其后,所以只选全局安全的 flag。

apps: rclone: path: "C:/opt/rclone.exe" # Rclone 可执行文件路径 arguments: "--fast-list --ignore-checksum" cloud: path: ludusavi-backup # 云端备份文件夹,默认 ludusavi-backup remote: ~ # 建议经 GUI 或 cloud set 修改,手动改文件不同步 Rclone synchronize: true # 备份后自动上传变更,默认 true

Flatpak 沙箱与"云盘伪装成本地文件夹"

沙箱里看不到宿主机的 Rclone

Linux 上通过 Flatpak 安装的 Ludusavi 默认被关在沙箱里,看不到系统装的 Rclone。包内其实自带了一份副本,直接把它填进 Rclone 可执行路径即可:

/app/bin/rclone

更想用宿主机自己的 Rclone(比如复用已完成 OAuth 的远程),做两步:

  1. 授予宿主文件系统访问权限:
flatpak override com.github.mtkennerly.ludusavi --filesystem=host
  1. Rclone 可执行路径改填/var/run/host/usr/bin/rclone。

想连同宿主机的 Rclone 配置一起复用,再把下面这行追加到 Ludusavi 的 Rclone 参数里(<USER>换成实际用户名):

--config /home/<USER>/.config/rclone/rclone.conf

打包层面的元数据可参考 assets/flatpak/com.github.mtkennerly.ludusavi.metainfo.xml。

不走 Rclone 同步的三条替代路

只要云存储能被呈现成一个普通本地文件夹,Ludusavi 就能直接把它当备份目标(把backup.path指向它):

  • Google Drive for Desktop:会创建特殊盘符(如 Windows 的G:)做流式读写,备份目标设为该盘下的目录;
  • Syncthing:持续把一个本地文件夹跨设备同步,备份目标设为那个本地文件夹;
  • Rclone 的 mount 功能:把远程挂载成本地目录,备份目标设为挂载点。

这三条路的共同点:Ludusavi 只看到"一个目录",完全无感知,云端差异交给外部工具收敛,因此也不会触发上文那套冲突预检流程。

配置核对清单与常见坑速查

落地前逐项打勾:

  • Rclone 可执行路径有效(Flatpak 下用/app/bin/rclone或已授权的宿主路径)
  • remote 已通过 GUI 或cloud set配置成功
  • 云路径非空且不是单独的/
  • synchronize开关符合预期(开启才有自动同步)
  • 自定义参数只用全局安全的 flag
症状处理
想手改config.yaml里的cloud.remote别改。任何变更都要与 Rclone 同步才生效,走 GUI 或cloud set
出现cloudConflict数据冲突无法自动同步,到 OTHER 页签手动上传或下载对齐
出现cloudSyncFailed自动同步尝试失败(如 Rclone 不可用),先检查可执行路径与参数
同步明显偏慢加--fast-list --ignore-checksum;被限流再试--transfers=1
只想同步个别游戏cloud upload/download后跟游戏名,或从 stdin 逐行传入

更多细节可查官方帮助文档 docs/help/cloud-backup.md 与命令模式 docs/schema/general-output.yaml。

【免费下载链接】ludusaviBackup tool for PC game saves项目地址: https://gitcode.com/GitHub_Trending/lu/ludusavi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询