snap2 Overview, Features, and Screenshots

This is the official website of snap2, an rsync-based, open-source, free backup program for Linux.

I also offer various Linux and open-source-related articles and tools.  Please see the links under "Linux Stuff" in the right margin.

Version: 4.x
Status: Production (stable/tested)

Snap2 can create and manage a series of rotating backup snapshots.  A backup snapshot is a full backup of your files as they were at a given point in time.  However, thanks to Linux hard links and the fact that rsync only has to transmit changes in files, these backups only take a small amount of disk space and bandwidth.

You can fit gigabytes of full backups on a one-gig USB flash drive, with no file compression!

This program is written in bash (Linux shell script) and uses gtkdialog for the GUI.  There were other similar solutions available several years ago when I wrote the first version of this program, but none of them gave me all the features I wanted:


  • GNU General Public license
  • extremely fast "snapshot" backups of huge collections of files
  • back up to 2nd hard drive, USB flash drive, or remote server
  • can do simple (single copy) mirror backups
  • can use "file exclusions" (files not to back up) for individual source paths
  • can be run manually whenever you want a "snapshot" of the current state of your files.  It can ALSO be run automatically by cron. The program includes a cron task scheduler.
  • backups are accessible as regular files in regular directories.  No special software is needed to access the backups.  You can browse to a past version of a source code file and copy it back to your working directory, or recover entire directories.
  • Thanks to hard link magic, even though backups appear to be completely separate copies, in reality only new/modified files create new copies on disk.  This gives huge economy of disk space.  You can get what appear to be several gigs of backups on a one-gig USB drive!
  • it is not necessary to be root to backup your files.
  • Report files are stored in the "root" of the backup. These will optionally be compressed by gzip, if available on your system.
  • support for backups to a remote server.
  • support for more than one settings directory.  This allows backups of some directories to a remote server, and others to a local disk.
  • Automatic Backup Scheduler (manages snap2 cron tasks)
  • Remote server SSH public key authentication setup helper

History: I used command-line version of this program for years to back up to a USB flash drive.  Finally, this year (2009), I went to the trouble of documenting it for public release, and I added the GUI wrapper.  Following are 6 screenshots which show the 4 program tabs, the Automatic Backup Scheduler, and the file exclusions patterns editor.  This is taken directly from my own backup of my home directory.


screenshot of GUI




Here is a screenshot of the backup file exclusions patterns editor.  This is where you can optionally specify file types NOT to backup, for each top level directory to back up.  These exclusions are for the top level directory '/home/lloyd', taken directly from my personal backup configuration.
(Image size has been reduced to fit on this page.  View original image. )


Below is a screenshot of the Automatic Backup Scheduler (via cron):


Due to the use of hard links, this backup system needs a Linux filesystem on the destination in order to use snapshot-type backups.  If you plan to use a USB flash drive to store the backups and it has a FAT filesystem, you will need to reformat it, or plan to use only the mirror-type backup.  I use and recommend the ext3 journaling filesystem.