Tuesday, 27 August 2013

TimeShift for Linux: Coming Soon....

Ever wished that you could go back in time and restore your PC to the exact state it was in a few days ago?

What if you could take a snapshot of your system before installing software packages and undo the changes in case of issues?

TimeShift is a new application that makes this possible.

TimeShift for Linux is a application that provides functionality similar to the System Restore feature in Windows and the Time Machine tool in Mac OS. It uses rsync and hard-links to create system snapshots which can be restored at a later date to undo all changes that were made after taking the snapshot. Common files are shared between snapshots using hard-links which saves disk space. Each snapshot is a full system backup that you can browse with a file manager.

TimeShift is similar to applications like rsnapshot, BackInTime and TimeVault but with different goals.

Why another application?

When I first came across rsnapshot I was impressed by the entire concept of taking incremental backups using rsync and hard-links. However tools like rsnapshot are designed for use on systems which are always running. On such systems cron jobs can be scheduled at hourly/daily/weekly/monthly intervals for taking regular snapshots of the system. But what about home users who use their PCs and laptops for only a few hours a day? There is a good chance that the system is not running at the time that a daily backup is scheduled to run. This results in missed backups and the last "daily" backup may actually be a few weeks old (depending on when it last ran successfully). Timeshift solves this issue by taking backups whenever the system is running. Backups are rotated based on the time at which the existing backups were taken. So running a weekly backup will have no effect if your last weekly backup is less than one week old. Hourly backups will be copied to the weekly level only after the last weekly backup becomes one week old.

BackInTime on the other hand also takes care of the issue described above and is the most feature-complete snapshot tool that I have seen till date. However somehow I could never get used to the UI. I wanted to create a simpler application with a simpler UI and lesser options - a simple system-restore utility which can be used by anyone with minimal setup.

Minimal Setup

TimeShift will be enabled automatically after you start the GUI for the time. Snapshots are saved by default on the system (root) partition in path /timeshift. If the root partition does not have enough space the user can select other Linux partitions for saving snapshots.

Boot Time Backups

By default snapshots are taken every time the system is booted. Hourly/daily/weekly/monthly levels can also be enabled. Boot-time backups provide an additional level of backup.

Better Snapshot Rotation

TimeShift runs at regular 30-minute intervals but takes snapshots only when required. Snapshots are rotated intelligently to maintain the specified number of hourly/daily/weekly/monthly backups.

Backup to Portable Device

Snapshots can be saved to portable hard disks with a Linux partition. Users can add a list of devices and TimeShift will remember the device and the partition. The next time the device is connected, the user will be prompted to save a snapshot on the device.


Snapshots can be restored either from the running system or from a live CD. Restoring backups from the running system requires a reboot to complete the restore process.

Cross-distribution Restore

You can time-shift across distributions. Lets say you were using Linux Mint till a week ago before switching to Xubuntu. After trying out Xubuntu you decide to go back to Mint. You can restore the snapshot from last week to get the Mint system back. TimeShift will restore the files from the snapshot and re-install grub2 to complete the restore process.

TimeShift is currently in development and will be released soon...