Easy backups with Flyback

Turning Back Time


The rsync-based Flyback tool automatically creates snapshots of critical directories at regular intervals - and ordinary users can restore the backup with a few easy mouse clicks.

By Florian Effenberger

Anyone who regularly edits and stores multiple files on a PC will be familiar with a common problem: An important file gets lost, and the latest backup from the IT department is too old to preserve the recent changes. In this situation, the Flyback [1] tool can help. Flyback shifts the responsibility for backups from the system administrator and puts it firmly in the user's hands.

The fairly recent tool is still at the development stage and is thus not included with every distribution. However, the archive is available from the Google Code [2] homepage. After downloading a couple of Python modules and the rsync synchronization tool, you can unpack Flyback and launch it directly. On Ubuntu, you can install the additional components at the command line by typing sudo apt-get install python python-glade2 python-gnome2 python-gconf rsync.

Tip

Some system administrators disable the use of cron jobs for normal users. In that case, the automatic backup feature will not be available.

Configuration

Depending on your system configuration, you can launch Flyback directly by double-clicking on flyback.py or by entering the python flyback.py command. The first time you launch the program, the tool's neat and tidy interface appears with its two panes (Figure 1): Your current set of files is shown on the left, and an empty overview of snapshots is on the right.

Figure 1: Backup is easy with Flyback's dual-pane interface.

Click the Home button to go directly to your home directory. Up climbs up one level through the directory tree. The Refresh button updates the list view, which you can modify to suit your personal requirements in the View menu or by clicking the column labels.

First, with your file manager, create a directory in which to store your snapshots. This folder cannot be in a path that you will be backing up, and it should not be / or /home either. /home/username/backups would store the backed up files in your home directory, for example. To set the required path as a backup path, use Edit | Settings | Storage Location (Figure 2). Flyback will now store the control files and all backups in this path.

Figure 2: Define the backup path in the Preferences dialog.

The paths you are backing up are set under the Included/Excluded Directories tab. The left side of the window is used for the backup sources, and directories that you want to explicitly exclude from the backup are configured on the right. In most cases, the default settings will be fine, so you can simply enter the path for the data to back up (e.g., /home/username/thesis).

Configure when the program will create automatic backups in the Backup Schedule tab (Figure 3); you will also need to configure the snapshot age or the remaining hard disk memory, at which point the program automatically deletes the backup. Setting up automatic backups is not as easy as it sounds - the program expects the entry in crontab notation [3]. To create a backup at 3:20am, you would set minute to 20 and hour to 3. To create a backup every hour, set the hour value to */1. A backup every three hours would thus be */3 in the hour field.

Figure 3: Configuring a backup using the quirky crontab notation.

Backup and Restore

If you decide to automate the backup procedure, Flyback will regularly store your selected directories by means of a cron job. For irregular backups, you can click Backup in the task bar to save new or modified files. After you create a few backups, the list of snapshots in the right panel will start to fill (Figure 4). The now status reflects the current filesystem status, which may or may not be the same as your latest backup. Below this is a list of snapshots and their time stamps.

Figure 4: Flyback shows snapshots as a list of date entries in the right panel.

If you select a snapshot, the software displays the directories and files belonging to it in the left panel. To open this directly, double-click. To restore a file, first select the file; Ctrl+click to select multiple files. Clicking Restore restores the files. On the test system, something unfortunate happened at this point: Flyback overwrote existing files with newer date stamps without prompting me to confirm. Just make sure you select the right files to restore.

To restore all the files in a directory, simply select the parent directory. An example can explain this: If you have 20 files in three subdirectories that you want to restore in a backup of /home/username/thesis, just select the directory entry for thesis and then click Restore, instead of clicking on each file. This tells the tool to restore all the files and directories below the selected directory. Note that, again, the current version of Flyback will overwrite existing files with newer date stamps.

Conclusions

Flyback is a practical tool with an intuitive front end. In contrast to other programs targeted at experienced system administrators, Flyback is better suited for daily use by normal users. However, the software still lacks some useful features. For example, it would make sense to save the differences between two versions of a file in a diff file.

On top of this, the program does not have a backup and compress option or an option for deleting snapshots via the program interface.

Despite these issues, Flyback is well designed and does not give the user too much to think about. Note that the developer version is not suitable for backing up critical data. In my tests, Flyback forgot its configuration or failed to detect new snapshots without restarting the program. Users also report various issues in the forums.

INFO
[1] Flyback: http://flyback-project.org
[2] Download: http://code.google.com/p/flyback/
[3] Crontab notation: http://en.wikipedia.org/wiki/Cron
THE AUTHOR

Florian Effenberger has been a promoter of open source software for several years. He is the international marketing project co-leader and marketing contact for OpenOffice Germany. Effenberger also plans and manages school networks based on open source software.