Skip to main content

This backup is futile

A couple of month ago, I noticed that I could not mount the filesystem created by attic, the program I was using to backup my data. A temporary inconvenience, I thought. Will certainly be fixed in a matter of days, I reasoned. But the situation was unchanged after two weeks, and to my great dismay, I found that I was also unable to extract single files from the backups. Attic was thus dutifully doing its hourly job, but I could have equally well directed all of them to /dev/null.

When searching for the issue, I discovered this thread. Attic was not yet completely broken at that time, but the stance of its developer is still remarkable:

Attic is my "feel good" pet project that I want to be able to code on whenever I happen to get some spare time. And when I have as little spare time as I currently have, I really do not want to spend it all on reviewing, merging, debugging and rewriting other peoples code.

Why on earth did he ever put his “pet project” on github then?

Since the community was interested, the project was forked. I switched to the fork and never looked back.

If you have an existing attic backup, all you have to do is to upgrade it by issuing

borg upgrade -v /path/to/repository

and to replace 'attic' by 'borg' in all backup scripts you may have. There is one major difference, though: if you want compression, you have to explicitly enable it, since borg allows you to chose the compression algorithm as well as the compression level.

As an example, here's the shell script I use to backup deepgreen (my Fujitsu Lifebook) to the big disk in my desktop (blackvelvet) via wifi:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

#<https://github.com/borgbackup/borg>
#<https://borgbackup.readthedocs.io/en/stable/index.html>

ionice -c3 -p$$

repository="cobra@blackvelvet:/bam/backup/attic/deepgreen" # directory backing up to
excludelist="/home/cobra/bin/exclude_from_attic.txt"
hostname=$(echo $HOSTNAME)

notify-send "Starting backup"

  borg create --info --stats --compression lz4              \
  $repository::$hostname-`date +%Y-%m-%d--%H:%M:%S`         \
  /home/cobra                                               \
  --exclude-from $excludelist                               \
  --exclude-caches

notify-send "Backup complete"

  borg prune --info $repository --keep-within=1d --keep-daily=7 --keep-weekly=4 --keep-monthly=6

  borg list $repository
Contents © 2018 Cobra · About · Privacy · Powered by Nikola · Creative Commons License BY-NC-SA