Saturday, 5 October 2013

Introducing TimeShift

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. TimeShift protects your system by taking incremental snapshots of the file system at regular intervals. These snapshots can be restored later to bring your system to the exact state it was in at the time when the snapshot was taken.

Snapshots are taken using rsync and hard-links. Common files are shared between snapshots which saves disk space. Each snapshot is a full system backup that can be browsed with a file manager.

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

TimeShift is designed to protect only system files and settings. User files such as documents, pictures and music are excluded. This ensures that your files remains unchanged when you restore your system to an earlier date. If you need a tool to backup your documents and files please take a look at the excellent BackInTime application which is more configurable and provides options for saving user files.

I'll be posting more details later about how TimeShift works.

You can leave a comment on my blog if you need any help with this application.

Please consider making a donation to this project if you find it useful. You can also purchase a support subscription if you need additional help through email.


Minimal Setup

  • TimeShift requires very little setup. Just install it, run it for the first time and take the first snapshot. A cron job will be enabled for taking automatic snapshots of the system at regular intervals. The backup levels can be selected from the Settings dialog.

  • Snapshots are saved by default on the system (root) partition in path /timeshift. Other linux partitions can also be selected.

Boot Snapshots

  • Boot snapshots provide an additional level of backup and are taken 30 minutes after the system is started.

  • Hourly, daily, weekly and monthly levels can be enabled if required.

Better Snapshots and Rotation

  • TimeShift runs at regular 30-minute intervals but takes snapshots only when needed.

  • Applications like rsnapshot rotate a snapshot to the next level by creating a hard-linked copy. Creating a hard-linked copy may seem like a good idea but it is still a waste of disk space. This is because only files can be hard-linked and not directories. The duplicated directory structure can take up as much as 100 MB of space. TimeShift avoids this wastage by using tags for maintaining backup levels. Each snapshot will have only one copy on disk and is tagged as "daily", "monthly", etc. The snapshot location will have a set of folders for each backup level ("Monthly", "Daily", etc) with symbolic links pointing to the actual snapshots tagged with the level.

System Restore

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 also TimeShift across distributions. Let's say you are currently using Xubuntu and decide to try out Linux Mint. You install Linux Mint on your system and try it out for a week before deciding to go back to Xubuntu. Using TimeShift you can simply restore the last week's snapshot to get your Xubuntu system back. TimeShift will take care of things like reinstalling the bootloader and other details. Since installing a new linux distribution also formats your root partition you need to save your snapshots on a separate linux partition for this to work.

Excluded Files

TimeShift is designed to protect system files and settings. User data such as documents, pictures and music are excluded by default. This has two advantages:

  • You don't need to worry about your documents getting overwritten when you restore a previous snapshot.
  • Your music and video collection will not waste space on the backup device.



If you are using the following Ubuntu releases (or any of its derivates like Kubuntu, Xubuntu, Linux Mint) then you can install it from the LaunchPad PPA:

  • Ubuntu 12.04 (precise)
  • Ubuntu 12.10 (quantal)
  • Ubuntu 13.04 (raring)
  • Ubuntu 13.10 (saucy)

Run the following commands in a terminal window:

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift

Supported Systems

TimeShift has been tested on distributions based on Ubuntu and currently only Debian (DEB) packages are avaiable. Packages for other systems like ArchLinux, Fedora, etc will be released soon after testing.

Support This Project

This software is free for personal and commercial use and is licensed under the GNU General Public License. If you find this software useful and wish to support its development, please consider purchasing a support subscription using the PayPal link below.

What you get when you purchase a support subscription:

  • Technical support through email for any issues faced while using the application.
  • Any features requested by you will be given greater priority.
  • You will be informed by email as soon a new version is released.

This application is free and open-source and will always remain that way. Please buy a subscription to show your support if you can afford it. People donating $10 or more will have their name listed as a sponsor in the application.