I used to use Mac OS X as my main machine, indeed for 18 years since I started when it was called NeXTSTEP. Now Apple has turned it into a paradise for mindless consumption, driving creators away. Now I use Linux Mint as my daily system, but one thing I was missing was a really simple, automatic backup to an external USB disk. Apple did a good job with Time Machine. Its simple to setup, happens automatically and in the background, provides a directory structure that you can browse like any standard file system and see the complete snapshots of your computer at the time of a given backup.
So I looked at a lot of apps and tools for doing this on Mint. I looked at Back In Time, simplebackup, pybackpack, obnam, BoxBackup, rsnapshot, and more. Back In Time seemed promising, and I probably should have considered it more. Its totally GUI focused, and oriented towards backing up the home folder as a regular user. I want a full disk backup as root. Also, the UI hit me with a ton of options, and I didn’t want to think that much. simplebackup just seemed like a simple way to make a single backup, with no snapshots. pybackpack is no longer developed. obnam sounds very promising as a command line tool, but it does not represent the backups as transparent files on a filesystem, so that nixed it for me. BoxBackup has a client/server architecture, so far too complicated. I think its oriented towards backing up a fleet of servers to a single backup host.
rsnapshot ended up being quite simple to set up for a command line person like me, and also easy to automate. And most importantly, it backs up easily to an external disk and writes out each snapshot as a full image of the system at the time of the snapshot. Sold! So I just needed to tweak it a little bit.
I had to make a couple edits to
/etc/rsnapshot.conf. One annoying detail to note in this config file is that you have to use tabs between the config items in a line, spaces won’t work. So first I pointed it to a folder on my external USB backup disk:
Then I told it not to create the root folder on the backup disk. If the backup disk is not present, it should not try to backup at all:
Then I enabled one fs mode (i.e.
-x in rsync speak), which means that rsnapshot won’t cross the boundaries of a disk. So if you tell it to backup
/, and you have
/home on a separate partition or disk, it won’t backup
/home. You could then add
/home specifically, then it would be backed up. Here’s the option:
Then I specified what I want backed up. These are each separate partitions on my system:
backup / root/
backup /media/share share/
Now the rsnapshot should happily backup. You can test it by running
rsnapshot hourly.So the next step is to cron it so it runs automatically in the back ground. I made a script like this for each of the cron folders (
# See ionice(1)
if [ -x /usr/bin/ionice ] &&
/usr/bin/ionice -c3 true 2>/dev/null; then
test -d /media/ext4backup/palatschinken && \
nice $IONICE /usr/bin/rsnapshot hourly
Be sure to change the
hourly in each script to match the folder its in. Adding in
ionice makes it run at very low CPU and disk priority, so you don’t notice that its running really. Lastly, if you are using this on a machine that is shutodwn or goes to sleep often, then you probably want to install anacron to make sure the daily, weekly, monthy jobs run (
apt-get install anacron, it usually configures itself to do the right thing once its installed).