~reesmichael1/revocatio

#Revocatio

revocatio is a tool to check the health of your backups.

#What does revocatio do?

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.

#Configuration

revocatio is configured through a single YAML file--here are detailed instructions on its options.

You can run revocatio --create-config to create a skeleton configuration that you can then edit to match your own setup. The file will be created at $XDG_CONFIG_HOME/revocatio/config.yaml (or the equivalent on your system).

You can also create the file by hand, referring to the detailed configuration options.

#History

revocatio began as a Python script some years ago. I wrote it to monitor various backups I had on a Raspberry Pi to make sure everything was working, but it was hardcoded to match my personal setup. What you see now is a far more productionized version of it, written to be configured through a single file. I have been using revocatio on my own servers for some time, and it has discovered missing/failing backups more than once.

#The Name

revocatio means "recalling" in Latin.

About this wiki

commit c278cdc796a0a2df005535f14f585c6ee79ebee8
Author: Michael Rees <mrees@noeontheend.com>
Date:   2022-07-20T07:22:32-05:00

Mention Borg gotchas in documentation
Clone this wiki
https://git.sr.ht/~reesmichael1/revocatio (read-only)
git@git.sr.ht:~reesmichael1/revocatio (read/write)