SparkleShare is an excellent backup tool comparable to Dropbox. SparkleShare is open source, however, and allows you to maintain your our backups without sharing your data with a third party. SparkleShare does have some downsides, including the inability to easily clean out old files and the need to use a graphical client, but it is currently the best open source tool available for nearly effortless data synchronization and backup.
This guide assumes access to two computers on the same network (WiFi or ethernet) with an SSH server installed on the machine (hereafter referred to as the server) that will store the backed up data. A user with more experience can easily extend this guide to backup to a VPS or other remote machine.
NB: While SparkleShare encrypts your data as it is sent over the network, it does not encrypt it where it is stored.
Start by installing SparkleShare on the computer you wish to synchronize to the server:
sudo apt-get install sparkleshare -y
Open SparkleShare from your applications menu or Dash and enter your name and e-mail address. (SparkleShare only uses these to generate your credentials.) Your client is now set up.
SparkleShare's website has an excellent guide for setting up a server here. I recommend following that, but with a few notes:
When finalizing the client set up, follow the directions with one exception: When entering the server address (i.e. IP address), append ":22" to it. There is a bug in the software that will cause the synchronization to fail without that. For example, with an IP address of 192.168.0.192, the field should be filled with "192.168.0.192:22"
That is it! SparkleShare will start backing up your client to the server. If you wish to add another client so that both machines will have a synchronized folder, then simply repeat the steps above for the client, and add the new client's key to the /home/git/.ssh/authorized_keys file.
If you want to synchronize a specific folder that already exists to SparkleShare, a symbolic link can be made to a directory within the SparkleShare directory. For example, to synchronize your Documents directory with SparkleShare, move your Documents folder to ~/SparkleShare/MyProject:
mv ~/Documents ~/SparkleShare/MyProject
Next create a symbolic link to the new location of the folder:
ln -s ~/SparkleShare/MyProject ~/Documents
Now your Documents directory will appear as before, but will actually reside in the SparkleShare folder and stay backed up to your server and other SparkleShare clients. You can repeat this safely with any of the following folders: Pictures, Videos, Downloads, Music, Templates, and Public.
http://debdistrosdoneright.com/topics/18-storage-and-backup/9-synchronize-and-backup-with-sparkleshare - This documentation was adapted, with permission, from this site