Snapper
Version: Web: http://snapper.io
Every Linux user would be happy to have a reliable system restore tool: preferably one that's better than what’s on offer from the likes of Windows and OS X, but with comparable ease of use.
The may have made you think of ZFS from OpenSolaris, but it's gone dark, and although ZFS is still active (and even ported to Linux), very few people actually use it outside server appliances. Btrfs is a more recent and – more importantly – stable and available filesystem for mainstream Linux. It offers many ZFS-like features, which makes it possible to track filesystem modifications via the filesystem itself, which means that a traditional file backup isn’t needed.
Snapper is an open source tool developed by SUSE engineers for managing btrfs snapshots, and it enables you to review changes made to the system and roll them back. Snapper was primarily created for SUSE and OpenSUSE systems, but it's not tied to them; the tool can be compiled for any flavour of Linux. The thing it is tied to is the filesystem that you use.
Even though some experimental ext4 support is present, the main purpose of Snapper is to serve as a front-end for the core btrfs features. In order to test it, you're encouraged to have at least one btrfs-formatted partition which you can play with.
Let’s assume that you have successfully installed Snapper, and that you want to track changes in your home directory. For this, you’d use: snapper -c my_home_volume createconfig /home'
As you can see, Snapper lets you set a separate volume for any directory, so there can be several volumes and subvolumes in a partition. To review changes, use snapper list, and you'll be provided with a table where every snapshot is recorded. Each has its own number, which is used for manipulating snapshots. For example, to review changes between recent snapshots and roll back to an earlier one, use: snapper diff 76..78 snapper undochange 76..78
It works like a charm. By the way, many people now consider btrfs to be stable, and Snapper provides another reason to switch to it.
“Snapper enables you to review changes and roll them back.”