I'm not a real man. I do back up my data. Especially when I'm traveling 5000 kilometers from «home» with my ultra-portable laptop. There is a risk that the disk breaks down, and there is a risk of the laptop being stolen. I don't want to loose my work or any of the pictures I take with my digital camera. The best way to back up data when you are on the road like this, is to burn it all to DVDs and mail them back home. Encrypted of cource, in case the post package is mis-delivered or stolen in transit. Incremental backups won't work, since there is no way of knowing if a package actually makes it all the way home.

The size of /home/jgaa alone is over 4 GB. The digital pictures for the last three months are about 12 GB. And then there are cvs, databases and so on. All in all about 4 – 5 DVDs of data. I'm running Debian/GNU Linux on the laptop. I searched for a backup-program in the debian-repository that were able to back up, encrypt and write the data to several DVDs in one operation. With no luck. There were many backup programs, but none that met my needs. (Some of then turned out to be rather lame python-scripts that actually stored the whole backup on disk prior to burning it to DVDs). I don't have disk-space (or patience) to write 20 GB to temporary files to the slow laptop-disk(!) I want pipes. So I designed a simple program that would read a data-stream from standard input and write the content to one or more DVDs. And similar, pipe the content from the DVDs back to standard output when I need to restore the backup. Before I spent three days writing this program, I searced for a similar progam on the Net. And believe it or not, on Sourceforge there is a little program that do exactly what I had in mind; splitpipe. I downloaded the source-code, fixed a few changes since the version of g++ the program was last built with, and it worked. With the following command I can back up any amount of data to the required number of DVDs:


tar c /home/jgaa /var/lib/cvs/ /travelpics | \
gpg -c --passphrase-file /home/jgaa/.gpg/.pass-backup | \
splitpipe -s dvd -o 'growisofs -Z /dev/dvd=/dev/stdin'


All I have to do is to change DVD when splitpipe asks for another one. This is how unix/linux is meant to do things, It's a shame that a useful program like splitpipe is not part of the Debian repository. Anyway, If you have the same backup requirements as me, now you do know how to effortlessly back up your data.