https://github.com/sourcefrog/conserve/
Conserve's guiding principles:
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
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.
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
To install from from available AUR packages, use an AUR helper:
yay -S conserve
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:
conserve diff
exists, but is not yet very useful.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.
Copyright 2012-2020 Martin Pool, mbp@sourcefrog.net.
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.
Version | Tag | Published |
---|---|---|
0.6.9 | 2yrs ago | |
0.6.8 | 2yrs ago | |
0.6.7 | 2yrs ago | |
0.6.6 | 2yrs ago |