TimeShift for Linux is an 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 at a later date to undo all changes to the system.
TimeShift is similar to applications like rsnapshot, BackInTime and TimeVault but with different goals. It 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.
- TimeShift requires very little setup. Just install it, run it for the first time and take the first snapshot. Cron job can 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.
- Hourly, daily, weekly and monthly levels can be enabled if required.
- TimeShift runs at regular 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.
Packages are available in my launchpad PPA for supported Ubuntu releases. 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
Run it from a terminal window using the following commands:
./timeshift-latest-i386.run #32-bit ./timeshift-latest-amd64.run #64-bit
Depending on the distribution that you are using, you may need to install packages for the following dependencies:
libgee json-glib rsync
Run the following command in a terminal window:
sudo apt-get remove timeshift
Remember to delete all snapshots before un-installing. Otherwise the snapshots continue to occupy space on your system. 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.
BTRFS volumes must have an Ubuntu-type layout with @ and @home subvolumes. Other layouts are not supported.
If the backup device is running out of space, try the following steps:
- 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 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. 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 application is completely free and will continue to remain that way. Your contributions will help in keeping this project alive and improving it further. Feel free to send me an email if you find any issues in this application or if you need any changes. Suggestions and feedback are always welcome.
If you want to buy me a coffee or send some donations my way, you can use Google wallet or Paypal to send a donation to teejeetech at gmail dot com.