一款开源免费且快速,高效和安全的跨平台备份程序:Restic使用教程

说明:Restic是使用Golang写的一款开源免费且快速,高效和安全的跨平台备份程序,貌似和以前发的Duplicati: https://briteming.blogspot.com/2016/08/duplicati-is-free-open-source-backup.html差不多,可以存储在本地,云存储服务或远程文件服务器上,并且使用加密技术来你的数据安全性和完整性,同样支持增量备份,可随时备份和恢复备份。并支持3种主要的操作系统LinuxmacOSWindows及一些较小的操作系统FreeBSDOpenBSD等。
支持的存储:
本地存储
SFTP
REST Server
Amazon S3
Minio Server
OpenStack Swift
Backblaze B2
Microsoft Azure Blob Storage
Google Cloud Storage
通过rclone挂载的存储(比如Google Drive、OneDrive等)
 

安装

Restic可以直接通过系统软件包安装,不过版本好像都有点旧,这里就选择最新的二进制方式安装。
二进制下载地址→传送门,先根据自己的架构选择对应的最新版本,这里只说Linux系统,Windows系统直接下载解压就行了。
使用命令:
#32位下载
wget https://github.com/restic/restic/releases/download/v0.9.4/restic_0.9.4_linux_386.bz2
#64位下载
wget https://github.com/restic/restic/releases/download/v0.9.4/restic_0.9.4_linux_amd64.bz2

#解压并删除压缩包
bzip2 -d restic*.bz2 && rm -rf restic*.bz2
#授权
chmod +x restic*
#移动二进制文件
mv restic* /usr/local/bin/restic
#查看版本
restic version
之后可以直接使用restic self-update命令升级二进制文件。
 

配置存储库

安装好了Restic后,还需要配置下存储方式,也就是你想备份到服务器本地,还是其它远程服务上。以下配置过程中都会要你输入密码,别忘了,不然就找不回来了。
这里只说常用的本地、sftprclone备份方式,其它的远程库配置可以看下官方文档→传送门
1、备份到本地
#备份到本地/ym文件夹
restic init --repo /ym
2、SFTP方式
该方法适合将文件备份到另一台VPS服务器。首先我们需要在要备份的服务器上生成个公钥再复制给另一台远程服务器,这样就可以实现免密码登录了。
提示:以下将需要备份的服务器称为A,备份到远程文件服务器B。
先使用SSH客户端登录服务器A,使用命令:
cd ~
ssh-keygen -t rsa
这里会要你命名密匙名称(这里建议使用默认名称),然后连续按几次Enter,这时候会在/root/.ssh文件夹生成2ssh密钥,然后我们查看公钥id_rsa.pub
cat ~/.ssh/id_rsa.pub
复制好公钥。
再使用SSH登录服务器B,使用命令:
#复制服务器A中的id_rsa.pub值
echo 'xxxxxxx' >> ~/.ssh/authorized_keys
如果提示No such file or directory错误信息,先使用mkdir ~/.ssh命令,再重新使用上面的命令。然后免密登录就配置完成了。
然后在服务器A上使用命令:
#root为服务器B的用户名,1.1.1.1为服务器ip,端口默认为22,/ym为服务器B上的存储文件夹,如果不存在则会自动创建
restic -r sftp:root@1.1.1.1:/ym init
如果服务器B端口非22,就需要配置下了,在服务器A~/.ssh目录创建config文件,使用命令:
nano ~/.ssh/config
新增以下参数:
Host 1.1.1.1
    User root
    Port 2222
从上至下的参数为服务器Bip、用户名和端口。然后重启ssh
/etc/init.d/sshd restart #centos系统
/etc/init.d/ssh restart #debian、ubuntu系统
此时可以直接在服务器A上使用新的命令:
#参数详解可以参考上面
restic -r sftp:1.1.1.1:/ym init
此时输入2次密码就完成了。
然后最后博主也没过多的研究,只是大概的了解下,有兴趣的可自己仔细研究下官方文档→传送门
---------

开源VPS备份软件Restic简单教程

 
软件Restic算是一个非常综合的备份神器,支持最常规的Sftp和Rsync等备份方式,同时,不仅支持本地备份,也支持备份到rclone挂载,AWS和Google CLoud Storage等,算是非常的全面。本文简单以Restic的Sftp方式备份实现远程备份为例,简单介绍一下Restic的使用方法

开源VPS备份软件Restic简单教程

为下文讨论方便,本文假设,我们现在要将A服务器的数据备份到B服务器
服务器A上的操作:
下载软件
下载最新版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
创建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: root@B.B.B.B:/home/vmvps init
将A服务器的/home/backup文件夹备份到B服务器的/home/vmvps备份仓,B.B.B.B为服务器B的ip
#需要输入刚才创建备份仓时的密码  restic -r sftp: root@B.B.B.B:/home/vmvp --verbose backup /home/backup
查看备份的文件
restic -r sftp: root@B.B.B.B:/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: root@B.B.B.B:/home/vmvps forget 要删除文件的ID
恢复备份
restic -r sftp: root@B.B.B.B:/home/vmvps restore abcd --target /home/backup
免密码操作存储仓
前面说过,我们的存储仓密码几乎在任何时候都要被用到,这样一来,我们想实现脚本自动化备份的时候就带来了很大难度,可以把密码保存到文件里(务必妥善保管),加参数解决这个问题
#此处假设密码为vmvps,保存到文件/root/resticpasswd  echo 'vmvps' > /root/resticpasswd
这样,在进行操作时就可以加入–password-file /root/resticpasswd参数达到免密码的目的了,比如备份时可以使用如下命令,加到crontab里实现自动备份了
restic -r sftp: root@B.B.B.B:/home/vmvp --verbose backup /home/backup --password-file /root/resticpasswd
如文章最开始所言,Restic除了Sftp还支持多种备份方式,比如rclone等等,大家可以参考官方的文章,会有更多的收获!