Having personal backups is a must, but what can you do if you don’t have a mac that runs timemachine?
My first instinct was using the tool of choice of a friend: duplicity. It’s free software, does encryption and incremental backups, what more could you want? But duplicity does not offer a very user experience. The docs are work in progress, the –help is a bit of a mess and the man page is too verbose for a quick start. Obviously I have little problem reading and learning before using a tool, which is why I gave up and looked for a different one.
Restic does all what I want and duplicity can, but it has a good documentation, bash completion and other optional bonuses for making usage and, in turn, my life much easier. It makes sense to think about what to backup before thinking about the right tool. I only want to backup from
~, I don’t care about `/etc` or other places with config or data, it would be no use to me when someone was to throw this laptop down a bridge. So just how much is lying around in my home directory?
$ du -h -d1 /home/jflach | grep "G" 1.9G /home/jflach/i2 4.3G /home/jflach/.ccache 20G /home/jflach/git 108G /home/jflach/vmware 6.6G /home/jflach/.cache 20G /home/jflach/Documents 1.2G /home/jflach/.thunderbird 3.3G /home/jflach/Downloads 5.6G /home/jflach/.vagrant.d 171G /home/jflach
Luckily I have no folder with an upper case “G” in the name and I can see that over 50% are used up by
vmare/. I don’t really need to backup my virtual machines, it’d be annoying to lose them but no reason to panic. `.ccache/`, `.cache/` and `Downloads` are completely irrelevant, bringing the total down to just above 50GB.
Back to restic. Creating a new local backup repository is easy:
$ restic init --repo /tmp/backup enter password for new backend: enter password again: created restic backend 929fc4f740 at /tmp/backup Please note that knowledge of your password is required to access the repository. Losing your password means that your data is irrecoverably lost.
Now the for the actual backup, I have a file containing the excluded directories:
$ cat ~/.config/restic.exclude Downloads vmware .ccache .cache
And the command is simply:
$ restic -r /tmp/backup backup ~ --exclude-file=.config/restic.exclude enter password for repository: password is correct scan [/home/jflach] scanned 10123 directories, 64039 files in 0:00 [11:07] 100.00% 76.166 MiB/s 49.612 GiB / 49.612 GiB 74162 / 74162 items 0 errors ETA 0:00 duration: 11:07, 76.12MiB/s snapshot dd45c515 saved
It took eleven minutes on my machine to encrypt and compress about 50GiB of data. Restic starts a few threads and voraciously consumes CPU time and memory as it runs. Get yourself a fresh cup of coffee, working is no fun while the tool runs.
All that’s now left to do is to copy the directory to some external server or hard drive. Restic offers support for common sync tools like sftp, google cloud or rclone, whatever you use it will be your job to automate and define its behavior.