dsvi/archivarius

A reliable incremental backup tool with versioning.

★ 3Forks 0C++GitHub ↗Compare

README

Archivarius

An incremental backup tool with versioning.

It's fast:

  • To restore the latest saved version, it does not have to first restore the oldest one, and then incrementally refine it. It goes right to the latest, despite being incremental. So depth of your archive does not affect restoration performance.
  • Uses modern encryption (ChaCha20+Poly1305) and compression (zstd).
  • Unlike some other incremental backup tools, it does not require a few gigs of local cache to work efficiently over network. Neither does it require periodic full-backups. So it's much easier on the network bandwidth.

It's reliable:

  • It never overwrites files. It only adds new ones, and deletes the obsolete ones. So even in case of power outage while archiving, your archive is safe.

It's simple (less then 5k lines of C++ code) and easy to use.

Supported attributes

  • Modification time (with nanosecond accuracy)
  • Symlinks
  • ACLs
  • Unix premissions

Getting it

Pre built binary

You can get a pre-built static binary for x86_64, arm64 and riscv64 linux, with no dependencies (e.g. distro agnostic), at the releases section.

Building via docker

The easiest way to build. Just run the docker-build.sh and get the binary at docker-build-out/ The binary has no dependency on any library and can be used with any linux distribution.

Using it

Create archivarius.conf, and run the tool:

archivarius archive

The command archive tells archivarius to execute all the tasks in the config. You might want to add it to cron, to do it daily. To restore an archive run:

archivarius restore archive=path/to/archive target-dir=/path/to/restore/archive/to/

Bash autocompletion

Make sure archivarius is in the $PATH

Add eval "$(archivarius bash)" line to your ~/.bashrc.

License

The software is provided under Zlib licence:

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

  3. This notice may not be removed or altered from any source distribution.

Contributors

dsvi

Issues