All Projects → sourcefrog → Conserve

sourcefrog / Conserve

Licence: other
[beta] robust portable backup tool in Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Conserve

Pitrery
PostgreSQL Point In Time Recovery made easy
Stars: ✭ 99 (-7.48%)
Mutual labels:  backup, restore
Pgbackrest
Reliable PostgreSQL Backup & Restore
Stars: ✭ 766 (+615.89%)
Mutual labels:  backup, restore
Pg probackup
Backup and recovery manager for PostgreSQL
Stars: ✭ 383 (+257.94%)
Mutual labels:  backup, restore
Firestore Backup Restore
NPM package for backup and restore Firebase Firestore
Stars: ✭ 307 (+186.92%)
Mutual labels:  backup, restore
Cv4pve Barc
Backup And Restore Ceph for Proxmox VE
Stars: ✭ 74 (-30.84%)
Mutual labels:  backup, restore
Gmvault
gmail backup software
Stars: ✭ 3,396 (+3073.83%)
Mutual labels:  backup, restore
Edizon
💡 A homebrew save management, editing tool and memory trainer for Horizon (Nintendo Switch)
Stars: ✭ 706 (+559.81%)
Mutual labels:  backup, restore
Burry.sh
Cloud Native Infrastructure BackUp & RecoveRY
Stars: ✭ 260 (+142.99%)
Mutual labels:  backup, restore
Backup
MySQL Database backup package for Laravel
Stars: ✭ 66 (-38.32%)
Mutual labels:  backup, restore
Packagesync
Sync sublime text packages & user settings across devices.
Stars: ✭ 63 (-41.12%)
Mutual labels:  backup, restore
Reshifter
Kubernetes cluster state management
Stars: ✭ 292 (+172.9%)
Mutual labels:  backup, restore
Bareos Webui
Bareos Web User Interface
Stars: ✭ 78 (-27.1%)
Mutual labels:  backup, restore
Docker Webserver
WebServer (MariaDB, PHP-FPM, Nginx) composed from several separate containers linked together
Stars: ✭ 290 (+171.03%)
Mutual labels:  backup, restore
Zmbackup
A reliable software written in Shell Script to help you in your daily task to backup and restore mails and accounts from Zimbra Open Source Email Platform. Project in deprecation process. Please help me with Waddles.
Stars: ✭ 103 (-3.74%)
Mutual labels:  backup, restore
Node Firestore Import Export
Firestore data import and export
Stars: ✭ 271 (+153.27%)
Mutual labels:  backup, restore
Bareos
Main repository with the code for the libraries and daemons
Stars: ✭ 651 (+508.41%)
Mutual labels:  backup, restore
ioBroker.backitup
Backitup enables the cyclical creation of backups of an IoBroker / Homematic installation
Stars: ✭ 43 (-59.81%)
Mutual labels:  backup, restore
myhoard
MySQL Backup and Point-in-time Recovery service
Stars: ✭ 62 (-42.06%)
Mutual labels:  backup, restore
Pghoard
PostgreSQL backup and restore service
Stars: ✭ 1,027 (+859.81%)
Mutual labels:  backup, restore
Rdiffweb
A simplified backup management software for quick access to your archives through an efficient web interface.
Stars: ✭ 76 (-28.97%)
Mutual labels:  backup, restore

Conserve: a robust backup program

https://github.com/sourcefrog/conserve/

Rust Windows build status crates.io Maturity: Beta

Conserve's guiding principles:

  • Safe: Conserve is written in Rust, a fast systems programming language with compile-time guarantees about types, memory safety, and concurrency. Conserve uses a conservative log-structured format.

  • Robust: If one file is corrupted in storage or due to a bug in Conserve, or if the backup is interrupted, you can still restore what was written. (Conserve doesn't need a large transaction to complete for data to be accessible.)

  • Careful: Backup data files are never touched or altered after they're written, unless you choose to purge them.

  • When you need help now: Restoring a subset of a large backup is fast, because it doesn't require reading the whole backup.

  • Always making progress: Even if the backup process or its network connection is repeatedly killed, Conserve can quickly pick up where it left off and make forward progress.

  • Ready for today: The storage format is fast and reliable on on high-latency, limited-capability, unlimited-capacity, eventually-consistent cloud object storage.

  • Fast: Conserve exploits Rust's fearless concurrency to make full use of multiple cores and IO bandwidth. (In the current release there's still room to add more concurrency.)

  • Portable: Conserve is tested on Windows, Linux (x86 and ARM), and OS X.

Quick start guide

Conserve storage is within an archive directory created by conserve init:

conserve init /backup/home.cons

conserve backup copies a source directory into a new version within the archive. Conserve copies files, directories, and (on Unix) symlinks. If the conserve backup command completes successfully (copying the whole source tree), the backup is considered complete.

conserve backup /backup/home.cons ~

conserve versions lists the versions in an archive, whether or not the backup is complete, the time at which the backup started, and the time taken to complete it. Each version is identified by a name starting with b.

$ conserve versions /backup/home.cons
b0000                      complete   2016-11-19T07:30:09+11:00     71s
b0001                      incomplete 2016-11-20T06:26:46+11:00
b0002                      incomplete 2016-11-20T06:30:45+11:00
b0003                      complete   2016-11-20T06:42:13+11:00    286s
b0004                      complete   2016-12-01T07:08:48+11:00     84s
b0005                      complete   2016-12-18T02:43:59+11:00      4s

conserve ls shows all the files in a particular version. Like all commands that read a band from an archive, it operates on the most recent by default, and you can specify a different version using -b. (You can also omit leading zeros from the backup version.)

$ conserve ls -b b0 /backup/home.cons | less

conserve restore copies a version back out of an archive:

$ conserve restore /backup/home.cons /tmp/trial-restore

conserve validate checks the integrity of an archive:

$ conserve validate /backup/home.cons

Exclusions

The --exclude GLOB option can be given to commands that operate on files, including backup, restore, ls and list-source.

A / at the start of the exclusion pattern anchors it to the top of the backup tree (not the root of the filesystem.) ** recursively matches any number of directories.

At the moment exclusion patterns must always start from the root, so you need **/*.swp to exclude .swp files anywhere in the tree.

The syntax is comes from the Rust globset crate.

Install

To build Conserve you need Rust and a C compiler that can be used by Rust.

To install the most recent release from crates.io, run

cargo install conserve

To install from a git checkout, run

cargo install -f --path .

On nightly Rust only, you can enable a potential speed-up to the blake2 hashes with

cargo +nightly install -f --path . --features blake2_simd_asm

Arch Linux

To install from from available AUR packages, use an AUR helper:

yay -S conserve

More documentation

Limitations

Conserve can reasonably be used for backups today: the format is stable, in my use it's reliable, and the basic features are complete.

Be aware that Conserve is developed as a part-time non-commercial project and there's no guarantee of support.

Some other limitations:

For more future features, see https://github.com/sourcefrog/conserve/wiki/Ideas.

Prior to 1.0, data formats may change on each minor version number change (0.x): you should restore using the same version that you used to make the backup.

For a longer list see the issue tracker and milestones.

Windows Defender and Windows Search Indexing can slow the system down severely when Conserve is making a backup. I recommend you exclude the backup directory from both systems.

Licence and non-warranty

Copyright 2012-2020 Martin Pool, [email protected].

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].