Docker 应用 rsync 异地备份 - docker 备份小白教程三(3/3)

数据无价,希望大家做好备份,而且不要觉得备份了就无忧了,一定要确认所做的备份是可用的。在测试机器上恢复一下所做的备份,恢复后确认所有的数据和设置都没有问题才算真正合格的备份。我都是确认某个 docker 应用的备份是可以恢复的,才会开始用这个应用。
这里仅提供一些简单的思路,请勿完全生搬硬套,不同的 docker 可能部署的方式不同,备份的方法也有差异。
本地定时自动备份上篇已经讲过了,下面说一下如何异地备份
重要的数据一定要遵循 321 备份策略
3: 保留至少3份数据副本
2: 使用至少2种不同的存储介质
1: 保留1份异地备份
异地备份工具,选择适合你的
rclone: 适合备份到网盘或是FTP
syncthing: 实时同步,并可以设置增量和版本控制备份
rsync: 适合备份到其他主机或是NAS上
这里主要讲一下 rsync,也是我最常用的
本地主机备份目录 /root/backup/
远端主机备份目录 /remote/backup/
远端主机IP地址 192.168.0.100
安装 rsync,本地和远端主机都需要安装
sudo apt install rsync -y
rsync 备份最好是用密钥连接,这样最方便,不需要输入密码
可以建一个专门用户,当然也可以用root(不推荐)
为备份建立一个专门用户bkuser
本地主机上 /home/bkuser/.ssh/ 目录下放用户的公钥和私钥
远端主机上 /home/bkuser/.ssh/ 目录下放用户的公钥
关于创建用户和设置密钥这里不详细说了,网上很多详细教程
rsync -avzP -e ssh /root/backup/ [email protected]:/remote/backup/
# -a: 归档模式(保留权限、时间戳等)
# -v: 详细输出
# -z: 传输过程中压缩数据
# -e ssh: 使用SSH进行安全传输
# -P: 使用-P标志时,它结合了两个有用的选项:
# --partial:这允许rsync在传输中断时保留部分传输的文件。这对于恢复大文件传输特别有用,无需从头开始重新传输。
# --progress:这会显示每个正在传输的文件的详细进度信息,包括已完成的百分比、传输速度和估计剩余时间。
小提示一:可以加上 --dry-run 参数用于模拟 rsync 的执行过程,帮助检查 rsync 命令的配置是否正确
rsync -avzP --dry-run -e ssh /root/backup/ [email protected]:/remote/backup/
小提示二: 可以加上 --delete 参数用于在同步过程中删除目标目录中存在但源目录中不存在的文件。可以确保目标目录与源目录完全一致,删除目标目录中多余的文件。
rsync -avzP --delete -e ssh /root/backup/ [email protected]:/remote/backup/