Restic算是一个非常综合的备份神器,支持最常规的Sftp和Rsync等备份方式,同时,不仅支持本地备份,也支持备份到rclone挂载,AWS和Google CLoud Storage等,算是非常的全面。
本文简单以Restic的Sftp方式备份实现远程备份为例,简单介绍一下Restic的使用方法
开源VPS备份软件Restic简单教程
为下文讨论方便,本文假设,我们现在要将A服务器的数据备份到B服务器
服务器A上的操作:
1,下载软件
下载最新版Restic的二进制文件(免编译,直接使用):最新地址可以到https://github.com/restic/restic/releases/latest查看,本文以64位软件为例
wget https://github.com/restic/restic/releases/download/v0.9.4/restic_0.9.4_linux_amd64.bz2 #可能需要使用apt-get或yum安装bzip2进行下一步解压 bzip2 -d restic_0.9.4_linux_amd64.bz2 chmod +x restic_0.9.4_linux_amd64 #移动到系统程序目录 mv restic_0.9.4_linux_amd64 /usr/local/bin/restic #查看版本 restic version #自升级(可选运行) restic self-update
2,创建SSH登录密钥
cd ~ ssh-keygen -t rsa #需要若干次回车或y的选择,根据实际情况选择 cat ~/.ssh/id_rsa.pub #复制上面显示的信息备用
服务器B上的操作:
#不要去掉下面的英文单引号 echo '刚才id_rsa.pub的内容' >> ~/.ssh/authorized_keys
服务器A上的操作:
创建备份仓(本文仓储目录设定为/home/vmvps),B.B.B.B为服务器B的ip,需要稍微等一会儿,然后输入两次密码,注意,密码务必记住!将来备份、恢复和查看数据时都要用
restic -r sftp:roo[email protected]:/home/vmvps init
将A服务器的/home/backup文件夹备份到B服务器的/home/vmvps备份仓,B.B.B.B为服务器B的ip
#需要输入刚才创建备份仓时的密码 restic -r sftp:roo[email protected]:/home/vmvps --verbose backup /home/backup
查看备份的文件
restic -r sftp:roo[email protected]:/home/vmvps snapshots
返回结果类似于
enter password for repository: repository dfc03097 opened successfully, password is correct ID Time Host Tags Paths ------------------------------------------------------------------- 3ddabe77 2019-02-26 02:36:32 ing /home/backup ------------------------------------------------------------------- 1 snapshots
删除备份文件
restic -r sftp:roo[email protected]:/home/vmvps forget 要删除文件的ID
恢复备份
restic -r sftp:roo[email protected]:/home/vmvps restore abcd --target /home/backup
免密码操作存储仓
前面说过,我们的存储仓密码几乎在任何时候都要被用到,这样一来,我们想实现脚本自动化备份的时候就带来了很大难度,可以把密码保存到文件里(务必妥善保管),加参数解决这个问题
#此处假设密码为vmvps,保存到文件/root/resticpasswd echo 'vmvps' > /root/resticpasswd
这样,在进行操作时就可以加入–password-file /root/resticpasswd参数达到免密码的目的了,比如备份时可以使用如下命令,加到crontab里实现自动备份了
restic -r sftp:[email protected]:/home/vmvps --verbose backup /home/backup --password-file /root/resticpasswd