Rsync Remote Backup

Rsync is a command line utility for Unix-like environments (linux, unix, freebsd, openbsd, etc.) which is an acronym for “remote” and “syncronization”. As you can imagine, the main purpose of this tool is to syncronize two directories remotely. There are some main advantages of rsync that make it so popular among unix administrators, and one of them is the fact that it verifies each file and copies the files that have been modified, leaving those that haven’t been modified since the last sync uncopied.

As it doesn’t keep track of each change, we can say that rsync performs mirror backups on remote computers, but keeps them updated in a smart way.

Rsync is the evolution of a very well know command called rcp, which is short for “remote copy”, however as it evolved and began doing more things that just “copying” the name had to be changed.

When it comes to security, rsync provides support for SSH or Secure Shell, which is a standard way to connect to remote machines through encrypted channels, however it doesn’t offer any security by itself on the syncronized files.

Being a command line utility, it’s easy to automate remote backups using a cron job (the equivalent to Windows’ scheduled tasks) so that entire directories are syncronized to a remote location every day or every N hours. You can also add some encryption to the destination directories, however that’s not clever as since rsync will compare the original files to those in the destination directory/computer, the files would have to be decrypted on the destination directory before running rsync and encrypted back after they have been syncronized. Another approach would be to encrypt the files in their original location prior to the syncronization and leave the ones in the destination computer encrypted, however that’s possible only with files that aren’t constantly accessed by the operating system or any other service as that would break havoc.

The syntaxis of the rsync command is fairly simple and a full manual page (man page to those unix savvy) is always accesible by typing “man rsync” at your shell prompt.

There are a few graphic front-ends for rsync, however the main feature of a shell utility is that it can be included in more complex scripts, while graphic front-ends are limited when it comes to functionality.

Rsync is distributed under the GPL license, which means that it’s competely free (free as in beer) and the source code is available to all developers.