Backuppc Everywhere

Like most people I have lost data in the past; hard drives failures, Windows viruses, etc. I’ve found it takes one big data loss for people to see the value of good backups. So it was for me. I saw the light in 1998 when I lost much of my archived data to an infected networked Windows computer. I didn’t run it very often, but when I left it running over night for the first time, the virus ended up deleting all the user files on my UNIX file server. Since then backups have been very important to me.

Since then I had been looking for a good, flexible, automatic backup system. It seemed there were many good backup systems out there, but none of them seemed to do all the things that I wanted them to do:

  • Works without user intervention (users forget to backup).
  • Doesn’t require installing special client software
  • Works on mobile systems which aren’t always available when backups are being made
  • Backs up many different operating systems (Linux, Mac, Windows, etc)
  • Stores backups in an efficient manner, for many years, on network attached storage (tapes are a pain)
  • Is Free/Open-Source Software.

In 2003, [[backuppc]] came to my attention. It seemed to fit all my criteria and more. I started to use it, and since then I’ve been pleasantly surprised how backuppc has met my needs over the years. But the most important thing was that every time I added a new device to my network environment, most of the time backuppc has been able to be used to back it up.

Backuppc easily backed up all my existing computers when I first started using it. With laptops, if they were on and available via wifi at night, they backed up with everything else. However, if they were off or away, they backed up as soon as they were available again. Sometimes this meant a backup during the middle of the day when they returned, however at least they were being backed up. Whenever we needed to get back an older version of a file, or restore a mistakenly deleted file from any of our computers, backuppc was up to the task.

After using it for a few years, we bought my wife an [[ibook]]. Backuppc was immediately put to work backing up this new OSX based laptop; it was just so easy to do. Then I bought a [[Nokia N800]]. It also was trivially backed up with backuppc as if it were a laptop.

The following assumes you already have your backuppc server setup and are successfully backing up other computers already.

After installing [[openssh]] on the n800 from here and rsync (which can be found in the maemo extras repository), you need to do some work on the backuppc server.

For this example, we’ll assume the n800’s hostname is “n800tablet” and the username is “joeblogs”. Change these to suite your needs.

First you need to create the setup file called /etc/backuppc/

$Conf{XferMethod} = 'rsync';
$Conf{RsyncShareName} = ['/'];
$Conf{BackupFilesExclude} = {
    '/'    => [qw(
        /dev /proc /sys /tmp
        /mnt/initfs/proc /mnt/initfs/sys /mnt/initfs/tmp
        /var/cache /var/lock /var/run /var/tmp

Then you need to setup ssh to be able to connect to the n800, and tell backuppc about the new config file:

# su - backuppc
$ ssh-copy-id -i ~/.ssh/ root@n800tablet
$ exit
# echo "n800tablet 0 joeblogs" >> /etc/backuppc/hosts
# /etc/init.d/backuppc restart

I was reminded of all these things a few days ago. I messed up my n800 to the point of being unable to boot. I needed to reflash it, however that meant wiping out my data and settings. The n800 has it’s own backup system (to SD card), but I hadn’t run it for a while (remember when I said above that users forget to backup?). However, I was also using backuppc, so I had recent backups! Once I had the n800 working again, I restored all the other files I didn’t have in my 6 month old n800 backup.

Good job I had backuppc.

By behanw

Behan Webster is an Embedded Systems Programmer with 25 years experience; his experience spans deeply embedded, through to large embedded systems (DSPs to mobile through servers to 5-9's telephone switches). He's been active in open source for almost as long. When he's not in front of a computer, he spends his time SCUBA diving, kayaking or building things.