共计 2601 个字符,预计需要花费 7 分钟才能阅读完成。
简介
restic 是一个疾速、高效、平安的备份程序。它反对三大操作系统(Linux、macOS、Windows)和一些较小的操作系统(FreeBSD、OpenBSD)。
我的项目地址:
https://github.com/restic/restic
装置
这里只介绍三大操作系统的装置办法,其余类型的操作系统请参考官网。
macOS
# 应用以下之一都能够
$ brew install restic
$ sudo port install restic
RHEL 和 CentOS
$ yum install yum-plugin-copr
$ yum copr enable copart/restic
$ yum install restic
Windows
# 应用此装置办法,restic.exe 将主动增加到 PATH 环境变量中
scoop install restic
应用 docker 容器
$ docker pull restic/restic
备份
筹备存储仓库
保留备份的地位称为“存储仓库”。仓库能够存储在本地,也能够存储在某个近程服务器或服务上。restic 承受环境变量 RESTIC_REPOSITORY 指定的仓库地位,也能够从通过 –repository-file 选项指定存储仓库的地位。
本地
在本地创立存储仓库 /srv/restic-repo,运行以下命令:
$ restic init --repo /srv/restic-repo
enter password for new repository:
enter password again:
created restic repository 085b3c76b9 at /srv/restic-repo
Please note that knowledge of your password is required to access the repository.
Losing your password means that your data is irrecoverably lost.
要留神的是,拜访仓库的明码非常重要,一旦忘记就无法访问备份在仓库中的数据。
备份,将 ~/work 目录中的文件备份到创立的本地仓库中:
$ restic -r /srv/restic-repo --verbose backup ~/work
open repository
enter password for repository:
password is correct
lock repository
load index files
start scan
start backup
scan finished in 1.837s
processed 1.720 GiB in 0:12
Files: 5307 new, 0 changed, 0 unmodified
Dirs: 1867 new, 0 changed, 0 unmodified
Added: 1.200 GiB
snapshot 40dc1520 saved
SFTP
应用 SFTP 备份数据,必须首先应用 SSH 设置服务器并让它晓得公钥。无明码登录十分重要,因为如果服务器提醒输出凭据,restic 将无奈连贯到存储库。
配置服务器后,能够通过更改 init 命令中的 URL 计划简略地实现 SFTP 存储库的设置:
$ restic -r sftp:user@host:/srv/restic-repo init
enter password for new repository:
enter password again:
created restic repository f1c6108821 at sftp:user@host:/srv/restic-repo
Please note that knowledge of your password is required to access the repository.
Losing your password means that your data is irrecoverably lost.
其余
除了本地备份和通过 SFTP 备份,restic 还反对其余后端服务备份:
- HTTP REST 服务器
- AWS S3(来自 Amazon 或应用 Minio 服务器)
- OpenStack Swift
- BackBlaze B2
- Microsoft Azure Blob 存储
- 谷歌云存储
复原
复原数据有两种形式,一是从快照复原,二是应用 mount 复原。
从快照复原
应用以下命令,即可将备份数据恢复到 /tmp/restore-work:
$ restic -r /srv/restic-repo restore 79766175 --target /tmp/restore-work
enter password for repository:
restoring <Snapshot of [/home/user/work] at 2015-05-08 21:40:19.884408621 +0200 CEST> to /tmp/restore-work
应用 mount 复原
将备份作为惯例文件系统浏览也很容易。首先,创立一个挂载点 /mnt/restic,而后应用以下命令为存储仓库提供服务:
$ mkdir /mnt/restic
$ restic -r /srv/restic-repo mount /mnt/restic
enter password for repository:
Now serving /srv/restic-repo at /mnt/restic
When finished, quit with Ctrl-c or umount the mountpoint.
设计准则
Restic 是一个能够正确进行备份的程序,其设计遵循以下准则:
- 简略:备份是一个很顺畅的过程,Restic 易于配置和应用,以便在数据失落的状况下,能够间接复原它。同样,复原数据也不简单。
- 疾速:应用 restic 备份数据仅受网络或硬盘带宽的限度,以便能够每天备份文件。如果须要太多工夫,没有人会进行备份。复原备份只传输要复原的文件所需的数据,这个过程也很快。
- 可验证:比备份更重要的是复原,restic 能够轻松验证所有数据是否能够复原。
- 平安:Restic 应用加密技术来保证数据的机密性和完整性。
- 高效:随着数据的增长,额定的快照应该只占用理论增量的存储。更重要的是,在将反复数据理论写入存储后端之前,应该对其进行去重,以节俭贵重的备份空间。
开源前哨
日常分享热门、乏味和实用的开源我的项目。参加保护 10 万 + Star 的开源技术资源库,包含:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。