Latest Version: 1.3 (2013-12-27)
Platform: Linux (Debian/Ubuntu)
Language: Vala & GTK3
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.
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.
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.
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 window.
Snapshots are saved by default on the system (root) partition in path /timeshift. Other linux partitions can also be selected.
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, since 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.
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.
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.
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
Other Linux Distributions
Download the installer from the following links:
Run it from a terminal window using the following commands:
sh ./timeshift-latest-i386.run #32-bit sh ./timeshift-latest-amd64.run #64-bit
Depending on the distribution that you are using, you may need to install packages for the following dependencies:
libgtk-3 libgee2 libsoup libjson-glib rsync
Run the following command in a terminal window:
sudo apt-get remove timeshift
Please delete all snapshots before un-installing. Otherwise the snapshots will take up space on disk.
To delete all snapshots, run the application, select all snapshots from the list (CTRL+A) and click the Delete button on the toolbar. This will delete all snapshots and remove the /timeshift folder in the root directory.
If you used the installer to install TimeShift, you can remove the installed files with following commands:
sudo rm -fv /usr/bin/timeshift sudo rm -rfv /usr/share/timeshift sudo rm -fv /usr/share/applications/TimeShift.desktop sudo rm -fv /usr/share/pixmaps/timeshift.png sudo rm -fv /usr/share/locale/*/LC_MESSAGES/timeshift.mo
Known Issues and Limitations
BTRFS volumes must have an Ubuntu-type layout with @ and @home subvolumes. Other layouts are not supported.
If the backup device runs out of space very quickly, please try the following:
- Reduce the number of backup levels - Enable the boot backup level and disable the others.
- Reduce the number of snapshots that are kept - In the Auto-Remove tab set the limit for boot snapshots to 10 or less.
- You can also disable the scheduled snapshots completely.
Only those systems are supported which use GRUB2 bootloader. Trying to create and restore snapshots on a system using older versions of GRUB will result in a non-bootable system.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
This program is free for personal and commercial use and comes with absolutely no warranty. You use this program entirely at your own risk. The author will not be liable for any damages arising from the use of this program.
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
- Features requests will be given higher priority.
- You will be informed by email as soon a new version is released.
- People donating $10 or more will have their name listed as a sponsor.
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.