关于ide:14k-Star一个快速安全高效的备份程序

54次阅读

共计 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 等。

正文完
 0