Linux is a bit of a funny creature. In many ways, it’s the most integrated and full featured operating system in existence. Take software development, for example. You couldn’t ask for a more integrated, well thought out solution. The tools are absolutely first rate, the system is stable, and because the platform is open source, most of the rough edges get worn off rather quickly.
But there’s also a downside to open source. You see, everyone tends to scratch their own itch first. Thus, while there are a bevy of tools that perfectly meet the needs of a few (most notably their authors), they often miss the needs of the many. That is a problem, because the masses don’t necessarily have the skill set required to adapt an already existing program so that it fits them. If anything, this is why Microsoft is valuable. They create software that more or less handles the needs of the masses.
And as might be expected, this is also the state of backup on Linux. It is no understatement to say that you can get your hands on the very best backup tools available, for free. All it requires is that you use some derivative of the following:
sudo apt-get install toolname
Unfortunately, while you can find the very best tools, that doesn’t necessarily mean that you will be able to use them. Rather that be written with the end-user in mind, they were created for programmers and system administrators. You know, the type of people who wonder why anyone would bother with a user interface. After all, it’s so much faster to do everything from the command line.
The result is that while the Linux backup tools may be powerful, they also have a learning curve steep enough to bang your head against. And that is an absolute shame. In general, I (and a great deal of humanity in general) am against activities that require me to learn new things or otherwise grow in what might end up being a painful direction. Even if it is for a good cause. (And I can think of few more important than making sure thatmy personal information is safe and secure.) Ideally, I want backup to be easy. I want to “Set it and forget it.” Time Machine for Mac OS X allows me to do this, as does the Windows Vista File Backup. But at first pass, such a solution for Linux is woefully absent.
That’s not to say that there aren’t contenders. In fact, a quick search on Google will reveal several: sbackup, Flyback, and TimeVault all look promising. But if you look at their project pages, you will notice something disconcerting: in each case, the programs are old and there isn’t much recent activity. This is typically a bad sign for an open source project. No activity usually means that the program is dead and unlikely to advance further. And that is really too bad, because sbackup, Flyback and TimeVault are good programs with potential. But, like many other open source options, they have a number of very rough edges.
Maybe that’s why I got so excited when I saw a new contender, called “Back In Time,” when it was recently featured on Lifehacker. At the time, I thought, “Have I finally found a backup program I can really use?” Now, after four months of using it full time, I can answer that question: Yes! Without a doubt!
Back In Time
Back in time is the full package. It includes a robust backend that makes incremental snapshots easy. You’ll also find a simple to use restoration system and a settings pane that actually make sense. What’s more, the defaults are actually useful! As a particularly nice touch, there are even separate packages for KDE and Gnome, so that the program will natively blend with whatever desktop you happen to have installed.
On Ubuntu, you can install Back In Time by downloading the packages for your Linux distribution. As noted above, you can find two different user interfaces available: one for KDE and another for Gnome. Don’t fret about downloading one over the other. They are identical in terms of functionality. (Note: The screenshots you see in this article were taken from the Gnome user interface.)
Thanks to the well-thought out defaults, getting started with Back In Time is easy and straightforward. The first time you launch the program, you are prompted to configure the differenct backup options. (Should you ever want to change these, you can access the same pane by clicking on the “Settings” button.) In the configuration window, you will see several different tabs. Each tab corresponds to a different part of the backup job. There are the general settings which describe where you want your backups to be saved and how often you want the backup to run. And there are settings for what you want to include, exclude, and how many snapshots you want to keep. Back In Time can back up to any attached storage device, including a USB hard drive or flash drive. Unfortunately, however, it doesn’t work with network drives or with optical media.
The include tab lets you specify which folders you would like to have added to the backup. Since Back In Time runs in two different modes (user and root), I’ve been using each mode to accomplish a slightly different goal. The user mode is ideal for backing up files and settings, while the root mode is ideal for backing up the system itself (similar to the way in Time Machine works on Mac OS X).
By using the different modes in this way, I can keep user fuke backups are kept in one location and the system information in another. Thus, if I should lose my system, I can quickly and easily restore my system using the "System" backup and then copy back my files. I avoid duplicating data through the “Exclude” tab. In the root mode, I exclude the “home” directory, where all of the files and profiles are kept. But since I am backing up my home directory through the user mode, this doesn’t really matter.
Incremental backups are most valuable when run frequently. Time Machine creates snapshots every hour for more or less “maximum” protection. And as I learned recently (after accidently deleting my entire source code directory for LyX-Outline), hourly backups can be a tremendous lifesaver. After my "accident," I was able to restore the directory to the way it had looked just 15 or so minutes before. In doing so, I recovered a number of important changes that hadn’t yet been committed to Subversion. At that moment, I was tremendously grateful that Back In Time could be configured for hourly snapshots.
But over time, the side effect of hourly snapshots is a huge number of unnecessary backups clog the drive. After all, I don't need to know what my drive looked like during every hour of 2009. It's here that we see another fine example of Back In Time's overall polish. The auto-remove settings provide a way to quickly and efficiently deal with too many snapshots. Back in time can be configured to prune the number of backups to something that is slightly more reasonable.
File restoration is dead simple as well. You can quickly browse through backed up files and folders using the restore pane of the GUI. If you need a version from an older snapshot, simply select it from the “snapshots” menu on the left. Once you have selected the files you are interested in, click “Restore.” They will be copied to their old locations.
But even though Back In Time is probably the best user-oriented backup solution I’ve found for Linux, it still isn’t perfect. (Though really, really close.) There is at least one major limitation: lack of a network based backup.
As I’ve said before, I prefer to keep my backups on my home server. There are a number of reasons for this, but the most important is that I don’t need to remember to turn my backup drive on. When it’s time to automatically back up, it just happens. Unfortunately, Back In Time does not natively support network or remote backups. (Fortunanately it runs on Linux, the most customizable operating system in the world, and there happens to be a workaround.)
Back In Time is a wonderful piece of software. In fact, it’s the only backup program on Linux I’ve found that really meets the dead simple needs of the typical computer user. It is built on the solid foundation of rsync, allows for incremental backups, has a well though out GUI and defaults, and generally “Just Works © .”
Even its greatest weakness (the lack of a network based backup option) is more of an inconvenience than a truly show stopping fault, since the same thing can readily be accomplished using a Linux kernel extension and a simple script. In Part 2 of this article, I will show you how.