Kopia Snapshot 恢复与传输流程
背景
在 AWS EC2(新加坡)上运行自托管的 Kopia 备份仓库,定期对服务器上的关键目录进行快照备份。
需求
- 从 Kopia 仓库中恢复指定子目录的最新版本
- 将恢复出来的文件传输到另一台远程服务器
- 两台服务器之间通过 SSH 免密登录实现自动化传输,无需手动输入密码
第一步:EC2 生成 SSH 密钥对
ssh-keygen -t ed25519
# 一路回车,不设 passphrase
第二步:把公钥加到目标服务器
# 查看公钥内容
cat ~/.ssh/id_ed25519.pub
# 登录目标服务器,把公钥追加进去
echo "公钥内容" >> ~/.ssh/authorized_keys
第三步:验证免密登录
ssh ec2-user@目标服务器IP
第四步:查找要恢复的 Snapshot
# 列出所有快照
kopia snapshot list
# 浏览快照内目录结构
kopia ls <snapshot-id>/
第五步:恢复到临时目录
kopia restore <snapshot-id>/子目录 /tmp/restore
第六步:rsync 传到目标服务器
rsync -av /tmp/restore/ ec2-user@目标服务器IP:/destination/
第七步:清理临时目录
rm -rf /tmp/restore
思路总结
| 工具 | 职责 |
|---|---|
| Kopia | 从仓库还原文件到本地临时目录 |
| rsync | 将文件传输到目标服务器 |
| SSH 免密 | 让 rsync 无需交互自动运行 |