restic

快速、安全、高效的备份程序。(Fast, secure, efficient backup program)

Github stars Tracking Chart

介绍

restic 是一个快速、高效、安全的备份程序。它支持三大操作系统(Linux、macOS、Windows)和一些较小的操作系统(FreeBSD、OpenBSD)。

有关详细用法和安装说明,请查看文档

您可以在我们的Discourse 论坛中提问。

快速开始

安装了 restic 之后,首先为备份创建一个存储库:

$ restic init --repo /tmp/backup
enter password for new backend:
enter password again:
created restic backend 085b3c76b9 at /tmp/backup
Please note that knowledge of your password is required to access the repository.
Losing your password means that your data is irrecoverably lost.

添加一些数据:

$ restic --repo /tmp/backup backup ~/work
enter password for repository:
scan [/home/user/work]
scanned 764 directories, 1816 files in 0:00
[0:29] 100.00%  54.732 MiB/s  1.582 GiB / 1.582 GiB  2580 / 2580 items  0 errors  ETA 0:00
duration: 0:29, 54.47MiB/s
snapshot 40dc1520 saved

接下来,您可以使用 restic restore 来恢复文件,也可以使用 restic mount 通过 fuse 挂载存储库并浏览以前快照中的文件。

有关更多选项,请查看在线文档

后端

在同一台机器上保存备份很好,但不是真正的备份策略。 因此,restic 支持以下后端本地存储备份:

设计原则

Restic 是一个正确执行备份的程序,它的设计遵循了以下原则:

  • 简单:做备份应该是一个不麻烦的过程,否则你可能会想跳过它。 Restic 应该易于配置和使用,以便在发生数据丢失时,您可以恢复它。同样,恢复数据也不应该很复杂。
  • 快速:用 restic 备份数据应该只受网络或硬盘带宽的限制,这样您就可以每天备份文件。如果备份花费太多时间,没有人会备份。恢复备份应该只传输要恢复的文件所需的数据,这样这个过程也会很快。
  • 可验证:比备份更重要的是恢复,因此 restic 使您可以轻松验证是否可以恢复所有数据。
  • 安全:Restic 使用加密技术来保证数据的机密性和完整性。假定存储备份数据的位置不是可信环境(例如,其他像系统管理员能够访问备份的共享空间)。Restic 旨在保护您的数据免受此类攻击者的攻击。
  • 高效:随着数据的增长,额外的快照应该只占用实际增量的存储。更重要的是,重复数据应该在实际写入存储后端之前进行重复数据删除,以节省宝贵的备份空间。

可重复的构建

从0.6.1开始发布的每个 restic 版本二进制文件是可重现的,这意味着您可以轻松地从该版本的源代码重现字节相同的版本。有关如何执行此操作的说明包含在构建器存储库中。

新闻

您可以在Twitter @resticbackup上关注 restic 项目,也可以订阅开发博客

许可

Restic 根据 BSD 2-Clause License 获得许可。 您可以在 LICENSE 中找到完整的文本。

赞助

AppsCode 赞助了 Google 云端存储和 Microsoft Azure Blob 存储的后端集成测试!

(First edition: vz edited at 2019.09.18)

Overview

Name With Ownerrestic/restic
Primary LanguageGo
Program languageMakefile (Language Count: 4)
PlatformBSD, Linux, Mac, Windows
License:BSD 2-Clause "Simplified" License
Release Count44
Last Release Namev0.16.4 (Posted on 2024-02-04 19:50:52)
First Release Namev0.0.1alpha (Posted on 2015-08-19 17:24:27)
Created At2014-04-27 14:07:58
Pushed At2024-04-16 03:22:55
Last Commit At2024-04-11 22:09:34
Stargazers Count23.7k
Watchers Count239
Fork Count1.5k
Commits Count7.8k
Has Issues Enabled
Issues Count2515
Issue Open Count429
Pull Requests Count1871
Pull Requests Open Count31
Pull Requests Close Count337
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

|Documentation| |Build Status| |Build status| |Report Card| |Say Thanks| |Reviewed by Hound|

Introduction

restic is a backup program that is fast, efficient and secure. It supports the three major operating systems (Linux, macOS, Windows) and a few smaller ones (FreeBSD, OpenBSD).

For detailed usage and installation instructions check out the documentation <https://restic.readthedocs.io/en/latest>__.

You can ask questions in our Discourse forum <https://forum.restic.net>__.

Quick start

Once you've installed <https://restic.readthedocs.io/en/latest/020_installation.html>__ restic, start
off with creating a repository for your backups:

.. code-block:: console

$ restic init --repo /tmp/backup
enter password for new backend:
enter password again:
created restic backend 085b3c76b9 at /tmp/backup
Please note that knowledge of your password is required to access the repository.
Losing your password means that your data is irrecoverably lost.

and add some data:

.. code-block:: console

$ restic --repo /tmp/backup backup ~/work
enter password for repository:
scan [/home/user/work]
scanned 764 directories, 1816 files in 0:00
[0:29] 100.00%  54.732 MiB/s  1.582 GiB / 1.582 GiB  2580 / 2580 items  0 errors  ETA 0:00
duration: 0:29, 54.47MiB/s
snapshot 40dc1520 saved

Next you can either use restic restore to restore files or use restic mount to mount the repository via fuse and browse the files from previous
snapshots.

For more options check out the online documentation <https://restic.readthedocs.io/en/latest/>__.

Backends

Saving a backup on the same machine is nice but not a real backup strategy.
Therefore, restic supports the following backends for storing backups natively:

  • Local directory <https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#local>__
  • sftp server (via SSH) <https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#sftp>__
  • HTTP REST server <https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#rest-server>__ (protocol <doc/100_references.rst#rest-backend>__ rest-server <https://github.com/restic/rest-server>__)
  • AWS S3 <https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#amazon-s3>__ (either from Amazon or using the Minio <https://minio.io>__ server)
  • OpenStack Swift <https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#openstack-swift>__
  • BackBlaze B2 <https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#backblaze-b2>__
  • Microsoft Azure Blob Storage <https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#microsoft-azure-blob-storage>__
  • Google Cloud Storage <https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#google-cloud-storage>__
  • And many other services via the rclone <https://rclone.org>__ Backend <https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#other-services-via-rclone>__

Design Principles

Restic is a program that does backups right and was designed with the
following principles in mind:

  • Easy: Doing backups should be a frictionless process, otherwise
    you might be tempted to skip it. Restic should be easy to configure
    and use, so that, in the event of a data loss, you can just restore
    it. Likewise, restoring data should not be complicated.

  • Fast: Backing up your data with restic should only be limited by
    your network or hard disk bandwidth so that you can backup your files
    every day. Nobody does backups if it takes too much time. Restoring
    backups should only transfer data that is needed for the files that
    are to be restored, so that this process is also fast.

  • Verifiable: Much more important than backup is restore, so restic
    enables you to easily verify that all data can be restored.

  • Secure: Restic uses cryptography to guarantee confidentiality and
    integrity of your data. The location the backup data is stored is
    assumed not to be a trusted environment (e.g. a shared space where
    others like system administrators are able to access your backups).
    Restic is built to secure your data against such attackers.

  • Efficient: With the growth of data, additional snapshots should
    only take the storage of the actual increment. Even more, duplicate
    data should be de-duplicated before it is actually written to the
    storage back end to save precious backup space.

Reproducible Builds

The binaries released with each restic version starting at 0.6.1 are
reproducible <https://reproducible-builds.org/>, which means that you can
easily reproduce a byte identical version from the source code for that
release. Instructions on how to do that are contained in the
builder repository <https://github.com/restic/builder>
.

News

You can follow the restic project on Twitter @resticbackup <https://twitter.com/resticbackup>__ or by subscribing to
the development blog <https://restic.net/blog/>__.

License

Restic is licensed under BSD 2-Clause License <https://opensource.org/licenses/BSD-2-Clause>__. You can find the
complete text in LICENSE.

Sponsorship

Backend integration tests for Google Cloud Storage and Microsoft Azure Blob
Storage are sponsored by AppsCode <https://appscode.com>__!

|AppsCode|

.. |Documentation| image:: https://readthedocs.org/projects/restic/badge/?version=latest
:target: https://restic.readthedocs.io/en/latest/?badge=latest
.. |Build Status| image:: https://travis-ci.com/restic/restic.svg?branch=master
:target: https://travis-ci.com/restic/restic
.. |Build status| image:: https://ci.appveyor.com/api/projects/status/nuy4lfbgfbytw92q/branch/master?svg=true
:target: https://ci.appveyor.com/project/fd0/restic/branch/master
.. |Report Card| image:: https://goreportcard.com/badge/github.com/restic/restic
:target: https://goreportcard.com/report/github.com/restic/restic
.. |Say Thanks| image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg
:target: https://saythanks.io/to/restic
.. |AppsCode| image:: https://cdn.appscode.com/images/logo/appscode/ac-logo-color.png
:target: https://appscode.com
.. |Reviewed by Hound| image:: https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg
:target: https://houndci.com

To the top