Kopia
1 Kopia
VSS
先在
repository.config
中enableActions
改为 true,然后用命令配置全局 profile(因为 gui 目前有 bug)1
2
3
4
5# 命令的前部分从 GUI 里面复制
XXX\kopia.exe --config-file=XXX\repositories\repository.config policy set --global --before-snapshot-root-action "powershell D:\soft\KopiaUI\before.ps1"
XXX\kopia.exe --config-file=XXX\repositories\repository.config policy set --global --after-snapshot-root-action "powershell D:\soft\KopiaUI\after.ps1"
# 要清空配置传空字符串 ""
XXX\kopia.exe --config-file=XXX\repositories\repository.config policy set --global --after-snapshot-root-action ""管理员 powershell,
Set-ExecutionPolicy Unrestricted
修改 ps1 关联,用 powershell 运行
before 脚本里有调试信息,放开后可用来确认脚本执行和备份路径
查看和删除 vss,防止 after 脚本没执行,
vssadmin list shadows
,vssadmin delete shadows
常用命令(软件的路径区分大小写,尽管 Windows 不区分)
1
2
3
4repository status
policy ls
policy show D:\
policy show --globalGUI 设置全局 policy,备份 10 个,其它为 0,忽略相同备份,zstd 压缩
.kopiaignore
文件,路径用/
分隔,且相对路径以/
起始,如/pagefile.sys
、/Windows/Temp/
- 系统盘排除内容可参考 dism++ 配置
- ignore 内容少,直接保存到 global 中配置 Ignore Files 列表,不用
.kopiaignore
snapshot estimate D:\
确认 ignore 生效
创建
snapshot create D:\
,由于只备份一个路径(D:\),所以用 global profile 即可确认备份过程是否存在错误,
snapshot ls
和show 前一个命令的 ID
,参考以后,定期确认备份文件是否正确,
snap verify --verify-files-percent 1
,参考删除的 snapshot 对应的文件会 延迟 24h 左右删除
diff OLDID NEWID
显示 snap 区别可手动 snap 然后 pin,pin 的 snap 不计入
Latest Snapshots
的设置中sync-to 可以暂停后恢复,而直接推送到云端,即 snap create 则不能
- 推送到云端,
repository sync-to rclone --remote-path=alist_local:/阿里云盘/d_backup --rclone-exe=D:\soft\KopiaUI\rclone-alist\rclone.exe --delete --dry-run
,实际用去掉--dry-run
,参考 - 对阿里云盘,初始版本用官方客户端上传更快,sync-to 速度要慢一倍
- 对 Onedrive,rclone + alist 的上传速度要好于只用 rclone。同样初始版本选择官方客户端,同步盘手动上传技巧
- 设置 onedrive 同步路径为 NOBACK 文件夹里
mklink /J "F:\FNOBACK\OneDrive - MSFT\g_backup" "F:\g_backup"
开启上传- 上传后,客户端退出 Onedrive 账户,删除 OneDrive 文件夹
- 推送到云端,
开机同步、关机备份脚本,同步可以并行,备份不能,会出错。此外备份如果添加到组策略中,会要求输入密码
- 为了将关机的快捷方式固定到任务栏,需要加
cmd /c
,如C:\Windows\System32\cmd.exe /C D:\shutdown_backup.bat
- 为了将关机的快捷方式固定到任务栏,需要加
其它
- Kopia 类似工具不适合备份系统,因为即使用了 VSS,甚至用 SYSTEM 用户权限执行,也会出现某些文件没权限读取,比如某些文件只能当前用户可读
- SYSTEM 用户执行 使用 PSTools,管理员 powershell,执行
.\PsExec.exe -sid powershell
,获得 SYSTEM 的 shell- 可在任务管理器,详细信息中确认进程的用户
- 如要用 Kopia 备份 linux,我认为可尝试 restic 相关问答
重装系统后,修改 snapshot 的 owner,
snapshot move-history 旧用户@desktop-f9pif6o 新用户@magicstone
,参考
1.1 Alist Rclone
- kopia 支持 webdav 但效果不好,所以再套一层 rclone 来上传备份
- alist
- rclone
rclone.conf
放在同一文件夹,rclone 会 自动使用,也可手动指定·--config=CONFIG_FILE
rclone config
进行配置向导- 使用 remote path 来指定操作对象,remote 是 config 中配置的,path 是里面的路径
- 如对于 alist 的阿里云盘备份路径为
alist_local:/阿里云盘/d_backup
- 列出目录
rclone ls remote:path # lists a remote
- 挂载
rclone.exe --cache-dir=rc_cache --temp-dir=rc_temp mount alist_local: Y: --vfs-cache-mode full
- 这里把 cache 和 temp 指向当前目录,用
rclone.exe config paths
确认当前设置的路径 - 其它命令见 文档
- 如对于 alist 的阿里云盘备份路径为
- OneDrive E5
1.2 出错
- 如果错误无法排除,从云端反向同步到本地
- kopia 新建个临时配置连接到云端,使用 alist_local,假设为
repository-1691977414632.config
- 同步
D:\soft\KopiaUI\resources\server\kopia.exe --config-file=D:\soft\KopiaUI\repositories\repository-1691977414632.config repository sync-to filesystem --path E:\temp --parallel=8
- kopia 新建个临时配置连接到云端,使用 alist_local,假设为