2 releases

0.1.1 May 28, 2023
0.1.0 Jul 20, 2022

#2545 in Command line utilities

48 downloads per month

GPL-3.0 license

42KB
767 lines

revocatio

builds.sr.ht status

A health monitor for your backups.

Summary

(For a detailed breakdown, consult the project wiki, but here's an overview copied from there.)

revocatio is not a backup tool itself. It cannot and will not make backups of your computer, databases, or anything else you have running.

revocatio is a tool to verify that your backups (written by other services) are where you expect them to be, being updated, and still valid. A common usage is to schedule it to run daily as a cron job or similar. It will then look for the backups specified in its configuration file and check a variety of criteria for each one. For example, all of the following checks are possible:

  • For backups that are simply written to a file, is there a file with the correct title larger than 1 MB written within the last two days?
  • For backups made with BorgBackup, is the most recent archive from within the last day? Does it pass borg --verify-data?
  • For backups of a Postgres database made with pg_dump, are the backups present and recent enough, and do they successfully extract with pg_restore?

Furthermore, revocatio can be configured to run any command--such as sending an email--when any checks fail.

To get started, run revocatio --create-config to scaffold the default configuration. You'll need to edit the newly created file to match your setup (see the command output to find out where the file is located).

Installing

If you have a Rust toolchain installed, revocatio can be installed with cargo:

cargo install revocatio

The current stable release is v0.1.0. Don't let the low version number scare you--revocatio is well tested, both in its own test suite and in real world usage!

Features

revocatio recognizes several backup formats:

  • BorgBackup
  • Compressed/plain files
  • pg_restore dumps from a database

Other formats are planned, and patches with formats you would like to see included are welcomed! You can also request support for a new format by emailing the project discussion list.

Contributing

Please send any contributions to the project development mailing list. If you're unfamiliar with sending patches to a mailing list, check out this guide for getting started.

Also, please ensure that you run these commands before mailing the development list:

git config format.subjectPrefix 'PATCH revocatio'.
git config sendemail.to ~reesmichael1/revocatio-dev@lists.sr.ht

Resources

Documentation is available on the project wiki.

You can ask any questions you may have about the project on the general discussion mailing list.

Please file any bugs, improvements, feature/format requests, etc., on the project ticket tracker.

Dependencies

~9–22MB
~300K SLoC