Backup tool selected

2 minute read

I enacted an act of choosing. I chose restic.

Reasons why

Single binary. The contender with the even better stats was duplicati, which is available from the Ubuntu repositories, but requires 130+ MB of packages to be installed. This is a server system, so a single binary is just what I want - and very easy to duplicate if we switch operating systems. It also comes with a first-class-citizen web UI, which can be bad - cause once you need the backup tool you don’t want to have click orgies in web UIs to get stuff back.

Somewhat good performace according to the comparison from the last post. I don’t expect to back up huge amounts of data, but I will keep an eye on the restore times. Also this is backing up data from a VM in a data center, so the link bandwidth should be sufficient in all directions.

Best ever update process for a single binary. Just invoke restic self-update, and it does the rest. So cool.

Nice docs - at least compared to, for example, duplicity.

The remaining open question is whether it will back up all file metadata, which I will see shortly.

Noteworthy

Like all fiels in IT “backup” has the same drawbacks. On one side you have god-almighty-powerful tools for license cost that makes you scream while needing at least 5 certifications on top to operate them, on the other side you have … tar. Luckily, for backups you get at least some middle ground, namely all the tools I mentioned in my first post.

I think all of them have certain advantages and disadvantages, while all being “good” tools for the job. The reasons I chose restic are above. Personally I would really like to try bupstash, but with backup software it does not pay to go for the “unstable” software which “might lose data”.

Current state

I have (blog post(s) with details forthcoming) …

  • created an S3 bucket and an IAM user with limited access to this
  • installed restic on one machine
  • initialized the restic repository in said bucket
  • created a run script which performs backups and handles service states
    • I want to update databases, and the safest way to do this is to stop them before
  • created a cron job which executes this script every 3 days