File backups are a key element for every user and on every computer. Whether it be an office setting or a home desktop machine, backups are essential – your hard drive will fail at some point; you will need a backup, and you’ll be kicking yourself if you learn this lesson the hard way.
While it’s always been possible to use tools such as cron and rsync to backup files in Linux, there has never previously been an easy-to-use program that end-users and beginners could feel comfortable configuring, until now. TimeVault allows you to backup your system with snapshots; this means that if you lose a file (or an entire file system), or want to return a document to a previous state, it is as simple as selecting the file through TimeVault’s Snapshot Browser and clicking “Revert.” Though it is currently in Beta, I have found TimeVault to be a complete solution for backups, and as of yet haven’t discovered any single major problem.
TimeVault is a relatively new project, and as such it isn’t available through most distributions’ repositories. This makes installation a little bit harder, but not much. Here’s a step-by-step walkthrough of installing TimeVault, tailored to Ubuntu Linux (but will work on any platform, especially those that are debian-based):
First, go to the TimeVault Download Site and select the most recent package appropriate for your distribution. For Ubuntu and Debian users, download the TimeVault 0.7.5 Beta Candidate DEB file; Other distributions will have to use the tarball version, which will not be covered here.
Select “Open with” and choose the GDebi Package Installer (or, it can be opened from the commandline with gdebi-gtk command). Once the download is complete, the package installer will open, and you will see this window:
Clicking “Install Package” will install TimeVault, as well as any of its dependencies (shown in the “Status:” line). Following installation, you will be informed that it is necessary to log out and log back into Gnome in order to use the Nautilus features included in TimeVault. But before you do this, you should setup TimeVault to start when Gnome starts:
Go to your System menu, then Preferences, and open the Sessions control panel. Here, in the “Startup Programs” tab, you will see a list of applications that start when you log-in. TimeVault does not add itself by default, and though it is not entirely necessary, it makes sense that you add TimeVault to this list. To do so, click the “Add” icon, and you will see this dialog:
For the fields, insert this information:
Name: Timevault Notifier
Comment:The Timevault Notifier Tray Tool
The “Name” and “Comment” fields can be different, but make sure the command line is correct, or it will fail to work properly. Now, TimeVault Notifier has been added to your startup programs list; just make sure it is checked off, and close the window:
Now you can logout and log back into Gnome, and your TimeVault Notifier will appear in your system tray.
In order for TimeVault to start working, you have to configure it by telling it what to backup, and to where. TimeVault offers some basic configuration options, which can be accessed by right-clicking on your TimeVault Notifier tray icon, and selecting Preferences. (Note: If you choose not to have TimeVault-Notifier activate at startup, it is accessible through the Applications — System Tools menu)
TimeVault’s configuration is divided into four tabs: General, Include, Exclude, and Expire.
The General tab allows you to configure important aspects of your backup system, such as whether you want to have your snapshots automated, whether you want to be notified when files are backed up, and more importantly, where you want your backed-up files to be located. Select this under the “Storage” menu; obviously, an external hard drive, a network mount, or a remotely-mounted internet drive are the best options.
Here, I created a folder on my external drive called “My Backups” and enabled automation.
The “Size Options” let you disable backing up of very large files (I set 128MB as my limit), and you can have TimeVault reserve space on your backup drive, in case you start to run out. The time increment is the amount of time TimeVault will wait each time it detects a new file to be backed up; so, if it detects a change to one set of files, and then to another set, I have told TimeVault to wait 5.0 mins before continuing on.
The Include tab is where you tell TimeVault what folders and files you want backed up.
Here, I have selected to backup my documents, binary files, and photographs; by default, TimeVault will include your /etc folder, which contains the configuration files for your system. This can be very useful if you make a disastrous change to your computer at some point; you can simply revert to the old, working version.
You will probably want to tell TimeVault to create a “Baseline” copy of each directory you are backing up; this will force it to create a backup of the files in their current state. When you do this, they are added to the Pending Snapshots window, shown below.
TimeVault comes pre-built with a list of files to be excluded. Most of these, such as /proc and /dev are folders used by the system,
that you wouldn’t want to backup. You should also probably add your backup folder to this list,
so you never run the risk of recursively backing up your backups (sounds bad, doesn’t it?)
If you look closely, you will see that your .mozilla folder is excluded from backups
(I am assuming this is because your web cache and cookies are constantly being modified,
so taking snapshots of this directory would be a waste of resources, and largely useless).
Unfortunately, this makes it difficult to backup your bookmarks.html file for firefox, since TimeVault only
allows directories to be included in the back-up list (see Limitations below);
the only workaround would be something like running:
inside your firefox profile directory.
The Expire settings allow you to choose how often you want snapshots to be deleted. By default, TimeVault will remove a snapshot over a week old, if it has ten later snapshots (modifications), or uses over a particular amount of space. These settings should be fine for most users, but you may want to change it depending upon your computing habits; if you tend to constantly edit and save a file, but still want to be able to access the original versions of it, you may want to increase the value of the second row, for example.
The lower options allow you to control how TimeVault handles merging snapshots that were taken during a particular time-frame. You can select to have it keep only the most recent shot of a file per hour (the default), or longer, if you wish.
Now that TimeVault is properly configured, you should run your Baselines, to create a current snapshot of the files and directories you’ve included to be backed up. As stated before, this is done in the Includes tab of the Preferences window. Once you add these tasks, you can open up the “Pending Snapshots Window” by clicking on the TimeVault-Notifier icon in your system tray:
You can see here the operations TimeVault is waiting to perform, at what time they will be executed, what files will be backed up, and how large they are. Since this is its first run, the Event column will all be “Baseline,” but once TimeVault begins to notice files being edited, it will mark the event as “Changed.” You can also right-click on a job to abort it, or use the Delete icon.
If you have notifications enabled, you will see popups like these every so often, letting you know what operations TimeVault has performed:
It’s a matter of personal taste whether you want to leave these enabled; during the base-line creation they can be constant, and somewhat annoying, but once the application is only monitoring your system for changes, it’s a nice reminder that your files are tucked away, safe and secure.
The Snapshot Browser is the interface used to view previous snapshots, revert to old versions, and restore files. Access it by right-clicking on the TimeVault icon in your tray, and selecting “Snapshot Browser.” You may wish to use the Root option if you want to restore certain files, such as those in the /etc directory. You can scroll chronologically using the top bar, and view the backup reports for each snapshot session:
In directories backed-up by TimeVault, you will see an icon that will launch the Snapshot Browser, showing you all previous snapshots of the files contained inside that folder.
Backup File Structure
While it’s not really something meant to be seen by the end-user, it’s worth mentioning the structure of TimeVault’s output; these are the files you will see if you browse your Backup directory. There are three folders:
Catalog – this contains an SQLite database, used by TimeVault to track backups, and is really of no interest to end-users.
Pending – this directory is typically empty; it’s likely the temporary directory used while files are being transfered into the Internal folder.
Internal – this is the folder of interest; it is where all your backups are kept. They are sorted first by owner (UIDs, or User IDs, are the unique numbers assigned to each user on your Linux system). uid-0 is root, and will contain items such as the configuration files found in /etc. Other UIDs are other users; your personal files are probably in a uid of 1000 or greater.
Each UID directory contains another folder, which is the day on which the snapshots are created. This follows the same lines as the interface in the Snapshot Browser. Going one level deeper will show you the files that have been backed up…
Filenames Include Hashes!
While all your files are in their original, unchanged format, they have been renamed with a hash of its contents preceding the original file name. So, you can view your backed-up files from here, but they will be a little harder to find. Better would be to use the Snapshot Browser, selecting the file you wish to see and clicking “Open.” While I understand this method of naming, read on in the “Limitations” section why I believe this might not be the greatest solution:
Can’t reschedule times
One of the biggest gripes I have with TimeVault is that it doesn’t allow you to reschedule your backups for a later date, or specify a time (preferably during which you’re not using the computer) to do backups. While this is usually only a minor annoyance, it can become frustrating when TimeVault starts copying files when you’re right in the middle of something intensive. A nice feature would be able to postpone a backup in the “Pending Snapshots” window.
No encrypted backups
One of the things I really want in a backup program is the ability to automatically encrypt and password protect the backed-up files. Timevault doesn’t offer this, and based upon the manner in which it backs up files, I don’t think it will be a feature at any time in the future. The only workaround I can think of here is to use an encrypted filesystem, which is less than ideal in most configurations.
No Backups of Single Files
As far as I can tell, TimeVault will only allow you to backup directories, not single files. While this is what you want to do most of the time, it can cause problems. Backing up your firefox bookmarks list, for example, requires creating a directory, and putting a link to the bookmarks file inside the directory (as done above). This is something I’d really like to see fixed soon.
No quick restore without Timevault
Due to the way that TimeVault names files (including the hashes in the copied version’s filename), there’s no easy way to restore files using your file manager. Instead, you must use the Snapshot Browser to select an old version of a file to which to revert; not a terrible limitation, but in the event of a system meltdown, it would save some time.
TimeVault finally offers a complete, easy-to-use, intuitive backup system for Linux. While advanced and experienced users have been able to schedule backups using rsync, cron, and other tools, new users will find Timevault a comfort; knowing that their files can be easily and safely backed up, and reverted to an older state if necessary. The interface is relatively intuitive, and although the configuration could be a bit simpler, beginners should have no problem setting up TimeVault to keep their files safe.
I’m eagerly looking forward to the next release of TimeVault, and I hope they continue to add new features; backup software is an essential part of any operating system, and TimeVault gets the job done well in keeping user’s files safe.