I picked up a dedicated server just before Christmas from OVH. It’s a nice little ‘Kimsufi’ 4GB Atom server which is more than enough for a couple of WordPress blogs and some personal projects. As it’s a bare-bones dedicated server I really want a decent backup service to make sure I don’t lose 11years of blog posts. The ideal solution is to store those backups in a cloud service like Amazon.
I asked for suggestions twitter and Conor suggested Duplicity. It looks like a good solution but it did mean I’d have to remember my AWS account details (I think I have three account, with two different email addresses). Then Simon suggested Tarsnap, which I had bookmarked months ago but I wasn’t sure how complicate the “paranoid security” would make it. Actually, Tarsnap is much simpler because it uses Amazon S3 in the backend but it doesn’t require you to manage it.
I install and use Tarsnap as root so that it has access to all files on the server
wget https://www.tarsnap.com/download/tarsnap-autoconf-1.0.33.tgz apt-get install libssl-dev zlib1g-dev e2fslibs-dev tar xzvf tarsnap-autoconf-1.0.33.tgz cd tarsnap-autoconf-1.0.33/ ./configure make all install clean
tarsnap-keygen --keyfile /root/tarsnap.key --user firstname.lastname@example.org --machine ovh mv /usr/local/etc/tarsnap.conf.sample /usr/local/etc/tarsnap.conf vi /usr/local/etc/tarsnap.conf
You don’t actually need to change any options in tarsnap.conf but double-check it anyway
Create a backup
tarsnap -c -f my_backup_name my_important_directory
List the backups
View the files in a backup
tarsnap -t -f my_backup_name
Automating the Backups
Well, that’s Tarsnap setup and working but I really want something automated. Enter this delicious little script which manages the Tarsnap backup process for you. Install the script as
Install Tarsnap Generations
wget https://raw.github.com/Gestas/Tarsnap-generations/master/tarsnap-generations.sh chmod ug+x tarsnap-generations.sh
Create a file with newline-seperated list of the folder you wish to backup (for me, that’s
Now we need to setup cron
and add the line
30 23 * * * /root/tarsnap-generations.sh -f /root/tarsnap.folders -h 1 -d 10 -w 4 -m 12
This will run the backup process at 2330hrs every day, keep 10 daily backups, 4 weekly backups and 12 monthly backups.