restic 数据备份以及数据恢复
一、了解restic
Restic 是一款 GO 语言开发的开源免费且快速、高效和安全的跨平台备份工具。
Restic 是一个快速、高效、安全的备份程序。它支持三个主流操作系统(Linux、macOS、Windows),Restic支持多种备份方式,可以将数据备份到本地、SFTP、AWS S3(对象存储)等
rclone rsync 只支持本地向远程同步,远程的数据永远会被覆盖,而Restic则是以快照形式保存数据,并且是增量备份数据。
二、安装restic
在主机
下载github 上的restic程序包,或者使用在96.11:/home/jyl/restic_0.13.1_linux_amd64.tar程序包
#https://github.com/restic/restic/releases/download/v0.13.1/restic_0.13.1_linux_amd64.bz2
tar -xvf restic_0.13.1_linux_amd64.tar
mv restic_0.13.1_linux_amd64 /usr/sbin/restic
chmod +x /usr/sbin/restic
##查看版本
[root@tcosmo-ceph-mon01 ~]# restic version
restic 0.13.1 compiled with go1.18 on linux/amd64
restic 常用参数说明:
restic 参数 | 对应参数说明 |
---|---|
backup | 备份文件 |
restore | 指定还原的快照 |
--target | 指定还原快照到具体的目录 |
restore latest | 最后一个备份的快照 |
-r, --repo | 备份或者要恢复的的repo存储库 |
diff | 显示两个快照中数据差异 |
init | 初始化备份数据存储库 |
version | 显示版本信息 |
tag | 给快照打标签 |
forget | 删除快照 |
snapshots | 查看所有备份快照 |
-v,--verbose | 输出备份过程中的统计信息 |
ls | 列出快照中的文件 |
-p, --password-file file | 存储库的密码文件路径,用于免密 |
-h, --help | 查看 restic 帮助信息,以及参数使用 |
三、主机间数据备份及还原
主机名 | IP | 功能 |
---|---|---|
主机A | 10.206.65.7 | 需要备份本地文件:/data |
主机B | 10.206.65.11 | 远程端备份文件/backup_data |
3.1 配置两个主机间互信
使用restic 将主机A的数据备份到主机B,需要主机A到主机B免密钥和互信
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.206.65.11
3.2 初始化备份
查看主机A 上本地 /data文件
主机A上创建初始化
backup_data 是远程repo存储库所在位置
[root@tcosmo-ceph-mon01 ~]# restic -r sftp:root@10.206.65.11:/backup_data init
enter password for new repository:#输入密码
enter password again:#再次输入密码
created restic repository ee6a3a72bd at sftp:root@10.206.65.11:/data
Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.
执行初始化备份时候一点要保证主机A能够免密登录到主机B 上
3.3 备份数据
把主机A上/data数据备份到主机B backup_data 目录下
restic -r sftp:root@10.206.65.11:/backup_data --verbose backup /data/
在主机A查看备份的快照,以及快照内容
[root@tcosmo-ceph-mon01 /]# restic -r sftp:root@10.206.65.11:/backup_data snapshots
enter password for repository:
repository 92efb528 opened successfully, password is correct
ID Time Host Tags Paths
-------------------------------------------------------------------
498e5b8b 2023-01-13 09:59:14 tcosmo-ceph-mon01 /data
-------------------------------------------------------------------
1 snapshots
###查看备份内容
restic -r sftp:root@10.206.65.11:/backup_data ls 498e5b8b
restic采取增量备份方式,再下次备份的时候restic只会备份有改动和增加的文件,并创建新快照(还原点)
#在主机A 上/data 下创建一个1024MB 的test.iso文件
[root@tcosmo-ceph-mon01 data]# dd if=/dev/zero of=/data/test.iso bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.629136 s, 1.7 GB/s
##再次主机A将/data 增量备份到主机B上
#restic -r sftp:root@10.206.65.11:/backup_data --verbose backup /data/
在主机A 上再次查看备份的快照
[root@tcosmo-ceph-mon01 data]# restic -r sftp:root@10.206.65.11:/backup_data snapshots --password-file /home/restic/rc-password
repository 92efb528 opened successfully, password is correct
ID Time Host Tags Paths
-------------------------------------------------------------------
498e5b8b 2023-01-13 09:59:14 tcosmo-ceph-mon01 /data
5e8d564a 2023-01-13 11:19:07 tcosmo-ceph-mon01 /data
-------------------------------------------------------------------
2 snapshots
3.4 restic免密码
上面备份的时候,都需要输入密码,肯定不适合脚本自动备份,可以使用--password-file
来配置免密码
##将密码保存一个目录
echo "Admin@123" > /home/restic/rc-password
##再次使用restic 命令过程就没有提示输入密码了
[root@tcosmo-ceph-mon01 /]# restic -r sftp:root@10.206.65.11:/backup_data snapshots --password-file /home/restic/rc-password
repository 92efb528 opened successfully, password is correct
ID Time Host Tags Paths
-------------------------------------------------------------------
498e5b8b 2023-01-13 09:59:14 tcosmo-ceph-mon01 /data
-------------------------------------------------------------------
1 snapshots
3.5 还原数据
将主机A data 目录下数据清空,来还原数据
[root@tcosmo-ceph-mon01 data]# rm -rf /data/*
##还原数据
[root@tcosmo-ceph-mon01 data]# restic -r sftp:root@10.206.65.11:/backup_data restore 498e5b8b --target /data --password-file /home/restic/rc-password
repository 92efb528 opened successfully, password is correct
restoring <Snapshot 498e5b8b of [/data] at 2023-01-13 09:59:14.635956798 +0800 CST by root@tcosmo-ceph-mon01> to /data
还原完成后,会多一个data 目录,也就是备份过程是连同目录一起备份
3.6 删除快照
通过forget,可以删除指定的快照
restic -r sftp:root@10.206.65.11:/backup_data forget 快照号
Comments | NOTHING