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 user settings ( hidden files in your Home directory ). User files such as documents, pictures and music are excluded. Read more in the Timeshift FAQ...
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.
I have used it a few times and it worked really well ( only taking snapshots ondemand ).
sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift