Giter VIP home page Giter VIP logo

others's Introduction

Documentation Build Status Go Report Card

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.

You can ask questions in our Discourse forum.

Quick start

Once you've installed restic, start off with creating a repository for your backups:

$ 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:

$ 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.

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:

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, which means that you can reproduce a byte identical version from the source code for that release. Instructions on how to do that are contained in the builder repository.

News

You can follow the restic project on Mastodon @resticbackup or subscribe to the project blog.

License

Restic is licensed under BSD 2-Clause License. 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!

Sponsored by AppsCode

others's People

Contributors

ad-m avatar ahuston-0 avatar alekseylobanov avatar anarcat avatar atalanttore avatar cfcs avatar ctrlaltdel avatar dmlemos avatar dyasny avatar emtiu avatar fd0 avatar finkregh avatar flibustenet avatar jedie avatar kcwu avatar lgommans avatar mappu avatar mauromol avatar muesli avatar ntolia avatar orthdron avatar penguwin avatar sstark avatar thmo avatar tim-seoss avatar tobypeschel avatar tomato42 avatar ustuehler avatar wotschofsky avatar wscott avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

others's Issues

Bacula missing

Bacula has been around a long time. I think it should be added to the list. See Bacula.org

LuckyBackup

http://luckybackup.sourceforge.net/

Solution comes preinstalled in most popular Linux distro: MX-Linux

Creates filesystem snapshots using rsync+hardlinks, kind of as TimeShift, but for data files.

Project "LuckyBackup is almost frozen", but author said: "I will not stop supporting this project"

Searchable version

To this day, this is the best collection of structured database about backups ( at least what I know of ) but to make it even more useful, a simple web search function could be implemented.

A bit like https://gsl.dome9.com/, a static page, with inline json, and js filters rendered into a table, with a somewhat good front-end guy it should be a piece of cake, and then github pages can host it as well, job done.

I personally happy to help with the GitHub Actions, and GitHub pages side of it, even the data conversion from md to json or yaml, but the js is beyond me ...

Déjà Dup

Déjà Dup is missing from the list

https://wiki.gnome.org/Apps/DejaDup

It's a simple, easy to use wrapper for Duplicity and was once incorporated with Ubuntu. It's nothing special but the ease of use for many home users is significant. Mission: "aim to convert people who don't currently have backups into people that do."

https://www.linux.com/topic/desktop/total-system-backup-and-recall-deja-dup/ (a bit dated but ok)

I use and recommend BackInTime for backups with a GUI but it seems to be dying, which is why I checked on this one and scanned your list. My other backup tools are Borg and Timeshift.

borg & "forever-incremental" backups

You have:

borg review,dedup,encrypted,python,authenticated

I may be misunderstanding, but you want "incremental" with this, also? Borg does so-called "forever-incremental" backups, as does bup.

Ah, I also see you have:

bup review,dedup,incremental,error-correction

But bup can also encrypt when used with encbuf.

New Tags

Thanks for your list! I was looking for just the thing. I'm trying to determine what to invest in personally before exporting to an organization I administrate and the quick overview here is fantastic.

While reviewing, I thought some new tags that could be added to this list are the following.

  • concurrent/simultaneous backups, or multiple sources to one backup repo
  • supports an ignore file/source

useful category: data storage format

While researching backup solutions, I found that there are fundamental differences in the way the backups themselves are stored.

A prime concern for me is compatibility and being able to read/restore backups with minimal tooling. From this perspective, backup solutions seem to fall into two broad categories:

  • restic, borg, bup: the backup is a git repo, it cannot be read without the software that created it
  • rsnapshot, backintime: the backup is just a folder structure with copies of the files inside, readable like any other folder structure (however: no deduplication, native encryption etc.)

Do you think there's a good way to incorporate these into your list? Approproate tags might be plaintext and git, and possibly others.

Duplicati tags

I used it for a lot of time.
It suppports S3-sompatible storages, authenticated, compressing, incremental backups, dedup, gpg (with manual settings, but works), ssh support

my notes

I went through the links you provided here (thank you), and thought I'd share my notes. I make no promises of any sort of consistency; the things that stuck out to me are no doubt related to my individual requirements and views. I mostly stuck to items from the existing list that didn't have any tags besides 'review'.

I noted a couple properties that I summarize here for brevity in the later list:
dbsrc - backup a database by properly dumping its data, rather than simply copying its files.
repo - rather than creating separate archives (tarball or similar), the program operates on a repository/store. Highly correlated with (proper) dedup.

Arqinator - just a reader for backups produced by the proprietary Arq
backshift - dedup, compression, expiration, python, source in svn*
backup - ruby, dbsrc, remote dst, no-dedup, no-incremental, sync, notification
backup2l - heirarchical incremental tarballs, https://github.com/gkiefer/backup2l, shell script
backuppc - perl, file-dedup (not block dedup), admin interface/daemon, client/server
Backups-Done-Right - proposal, no code
bareos - client/server, fork of bacula, incremental
boxbackup - c++, client/server, continuous
btar - c, complicated build around tarballs
btrbk - perl, btrfs, encryption
burp - c, client/server, compression, dedup, librsync deltas, configurable retention
chop-backup - c, 'beta', not active
dar - pre-github scm, differential, compression, encryption, checksums, multi-archive
ddar - dedup, repo*, unmaintained, c/python
deltaic - python, single author, low activity, script over lvm thin pools
duplicity - librsync, active, encryption, incremental tarballs
fwbackups - gui, tar, rsync, maintenance only
frost - dedup, compression, encryption, single dev, low activity, c++, no built in xfer**
hashbackup - dedup, compression, encryption, unpruned repo, proprietary/no source
kebab - inactive (2015)
knoxite - golang, single dev, encryption, dedup, backend sharding, repo, missing docs
obnam - repo, dedup, encryption, sftp, python, c?, repo, single tier pruning strategy
ori - not targeted at backup, p2p, slow development, c++
pukcab - repo, dedup, compression, ssh, retention schedules, web interface (client/server?), single dev, moderately active, '[enthusiast grade]'
rdedup - dedup, encryption, compression, rust, moderate activity, beta
scat - decentralized storage, dedup, erasure codes, checksums, multiple copies, toolbox approach
rsnapshot - hard link dedup, perl, active
shield - dbsrc,
snaprd - single dev, golang, pruning, hardlink dedup
snebu - client/server, compression, file-level dedup, data expiration, c, single dev, low activity
s3git - golang, dedup, distributed, inactive
storeBackup - 'CVS' level inactivity
ugarit - fossil required to view source, no recent release, dedup
unison - no snapshots just synchronization
urBackup - client/server, web ui, file dedup, c, commercial version
veb - golang, abandoned
zbackup - dedup, compression, encryption, c++, sporadic development
zpaq - repo, dedup, compression, checksum, revision control by zip file? 😱

* this is a thing I care about—projects on github are much easier to evaluate for maturity and activity

** The degree to which designs take a local or remote approach varies significantly. For my purposes I want to have remotes that pull data from an intermediary which has access to the source data, and so not having any built in facility for managing remote backends isn't necessarily worse than anything else. Ideally (I think) I'd have a client on the remotes which could see only encrypted data, but could selectively download (shard), and prune old data using limited unencrypted metadata. But that's neither here nor there.

sort and select projects by tag

the TODO currently states:

In the future we plan to provide benchmarks using fakedatafs and a table to sort by the tag categories.

i have looked in the latter, and it seems to me the simplest solution would be to have one page per backup software and use some sort of page metadata to enumerate which tags apply to which page. this would probably imply the use of a static site generator.

having one page per software would also allow those page to feature benchmarks and other data about the tools.

i haven't reviewed the SSG alternatives in detail, but here's the one i thought would be worth mentioning:

  • Jekyll: Ruby, builtin to Github pages, which avoids committing HTML to git, but tags are not well supported which forces committing HTML to git in the end
  • Hugo: Go, requires publishing rendered pages into git, has taxonomies which could be used for this, but requires a template supporting those, not sure about filtering/sorting
  • Ikiwiki: Perl, doesn't support github pages out of the box, crude support for tags, which are pages you link to, limited filtering support

Also note that Gitlab pages support any arbitrary SSG, not just Jekyll, which may make deployment easier because it doesn't require committing rendered content into git - it's just part of the regular CI system.

rdiff-backup is back now

Hi,

rdiff-backup is back now. I am going to implement it on our system. I'll provide more updates later, but I think you can remove the tag unmaintained.

Hope this helps. By the way, you guys have a great list.

Thank you.

Tape/external media support?

Some of us need offline storage. Tapes / DVD to a safe in a different building gives disaster recovery.
Sometimes it can't be sent over the network to another server either.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.