前言
为了防止硬盘意外损坏造成重要数据丢失,所以在网络上寻找自动备份的软件,由于要将数据上传到指定服务器/云盘,所以不敢使用闭源软件><
所以就找到了——Kopia
已知123官方WebDav长期使用Kopia备份多个文件夹之后 WebDav将无法正常加载
简单介绍
KopiaUI 是一款跨平台备份软件,是KopiaCLI的官方GUI版,支持 Windows、macOS 和 Linux
安装KopiaUI
KopiaUI仓库
官方文档
从KopiaUI仓库下载与你系统、架构匹配的版本即可
Kopia有CLI版本,安装KopiaUI后自带CLI版本
使用
创建存储库(WebDav)
安装完成后启动KopiaUI
选择一个云端用来备份需要的文件
这里选择WebDav
填入WebDav的URL
格式:http[s]://域名:端口/路径
然后填入用户名和密码
填入无误后会出现创建密码界面,设置密码后即可创建存储库
另外在高级选项中可以调整加密算法,默认为AES256-GCM-HMAC-SHA256
最下方Username(用户名)与Hostname(主机名)主要用来按用户分类备份 以方便恢复
创建存储库(Rclone)
Rclone支持多个存储,但是需要额外安装,详情请见GitHub页面
目前Kopia的Rclone支持为实验性,请注意
安装Rclone
在GitHub Release页面下载对应系统架构的版本,解压,然后设置环境变量Win + R启动cmd 输入
rclone version如果出现版本号,那么环境变量设置成功
在Rclone添加存储
rclone config然后选择n) New remote
name>设置存储名称
Storage>然后选择存储的编号,我的存储是OneDrive,所以输入42
然后登陆Microsoft Azure获取Client ID和client_secret,详情见OpenList文档
然后在Authentication(Preview)页面添加http://localhost:53682回调URL,否则Rclone后续回调将被拦截
client_id>填入客户端ID
client_secret>填入客户端密钥
region>如果购买的是个人版(Microsoft 365)那么选择1(国际,大多数是这个) 企业版则选择4(cn)
tenant>回车跳过
Edit advanced config?>n
Use web browser to automatically authenticate rclone with remote?>y
将在浏览器弹出登录页面,登录即可,回调成功显示Success!
config_type>1
config_driveid>
这里有一个已知Bug,选择 1,看能否成功,如果出现错误(HTTP error 400 / 403)则需选择手动输入文件夹ID,这里我就出现了这个问题
失败后会回退到config_type> 此时选择 5,手动输入文件夹ID
获取文件夹ID:登录网页版OneDrive,左侧选择我的文件,左上角随便创建一个文件夹,点进去,把域名id后面的部分(https://onedrive.live.com/my?id=)全部复制下来,前往URL在线解码网站把复制下来的参数复制到上面,然后点击URL解码,我这边解码后是my?id=/personal/0fa380844eb26330/Documents/kopia&sortField,注意看中间那一段,那个就是文件夹ID:0fa380844eb26330
config_driveid_fixed>0fa380844eb26330
然后Rclone会自动找到你的根文件夹root,直接点击回车(y),最后会确认信息,无误后点击回车(y)
Current remotes:
Name Type
==== ====
OneDrive onedrive
选择q退出配置
最后输入
rclone lsd OneDrive:如果能成功列出网盘内的文件夹 即代表添加成功,否则根据报错信息排查 / 重新添加
我这里先单独创建一个文件夹用来保存Kopia的备份
rclone mkdir OneDrive:kopia使用KopiaUI连接到Rclone
在KopiaUI添加存储器页面 选择 Rclone Remote
Rclone Remote Path:填写 在rclone的存储名:路径 我这边是OneDrive:kopia
Rclone Executable Path:填写 rclone.exe 的完整路径(如果成功设置Rclone环境变量此项可不填)
填写完成后点击Next
同WebDav方法一样 新建 / 输入存储库密码 我就不过多赘述了
备份文件/文件夹
成功创建存储库后就可以开始备份文件/文件夹了
在主界面上方点击New Snapshot
然后填入你要备份的路径
填入后点击Snapshot Now以开始备份,也可以点击Estimate查看备份详情
从备份恢复
在主界面进入需要恢复的路径,然后选择并进入需要恢复到的时间点
可以选择如何恢复
这里以Restore Files & Directories为例
需要说一下最后两个选项,即原子写入文件和写入稀疏文件原子写入文件:写入时先写到一个临时文件,写完后在重命名为最终文件名,可以防止断电或程序崩溃时,目标文件夹里留下损坏的文件写入稀疏文件:针对含有大量空白(全0)的大文件,只写入有实际数据的部分(如虚拟机磁盘镜像、数据库文件等)
从其他设备恢复备份
先在其他设备连接上源设备的存储库即创建存储库
等待存储库初始化完成,回到主界面
在主界面左上角可以选择用户(基于添加存储库中的Username和Hostname),选择指定用户或者全部用户即可
移动目录
一般用于源文件夹的位置被更改后
注:KopiaUI似乎暂时还没有实现此功能,需要使用KopiaCLI
例:M:\OBS-sending的目录被移动到N:\OBS-sending
语法:kopia snapshot move-history "你的用户名@电脑名:M:\OBS-sending" "你的用户名@电脑名:N:\OBS-sending"
实际命令:
C:\Users\ChariTY\AppData\Local\Programs\KopiaUI\resources\server\kopia.exe --config-file=C:\Users\ChariTY\AppData\Roaming\kopia\repository.config snapshot move-history "ChariTY@charity:M:\OBS-sending" "ChariTY@charity:N:\OBS-sending"移动成功,如果需要删除旧的快照路径:
在KopiaUI主界面中进入旧的快照路径(这里是M:\OBS-sending),点击上方的"Delete Snapshot Source"
常见问题
Q:WebDav存储库维护(maintenance)失败怎么办?
A:关闭定期维护;先定位KopiaCLI在哪里:在KopiaUI页面点击此按钮
以我这里为例,前面的C:\Users\ChariTY\AppData\Local\Programs\KopiaUI\resources\server\kopia.exe就是KopiaCLI
使用任意终端执行C:\Users\ChariTY\AppData\Local\Programs\KopiaUI\resources\server\kopia.exe maintenance set --enable-quick=false --enable-full=false来关闭维护功能