rsync: A Backup Strategy for Modern Times
Explore the use of rsync as a powerful tool for backing up data, synchronizing and transferring file trees, and mirroring Web sites.
The use of hard drives for backups is outpacing other forms of backup media by a country mile. The largest IDE drive available right now is 200 gigabytes (Western Digital's Drivezilla, which gets my vote for best name). Tape backup has valiantly attempted to keep pace. Tape autoloaders, holding up to 1.4 terabytes, and 100/200 gigabyte capacity tapes, are some of the modern tape storage options.
I have never warmed up to tape storage, though. While I found tape tolerable when it presented a significant cost savings over other data storage media, I rarely use tape at all now that hard drives have become so large and so inexpensive. Hard drives have many advantages over tape, including speed, redundancy, ease of use, and versatility.
Users needing removeable storage have several options such as mobile drive racks and USB hard drives. The one downside is hard drives probably don't have the longevity that tapes do. No one knows what the future will bring, or if we'll even have the means to read those 30-year tapes in 30 years. But long-term archiving is a topic for another day; today we focus on short-term backup needs and specifically on a tool that helps backup information to one or more hard drives.
There's a new kid on the backup software block: rsync. rsync was originally designed to replace rcp, the venerable old Unix remote copy program. Because of its sophisticated means of synchronizing and transferring file trees, rsync is widely used for mirroring Web sites. rsync transfers only the changes in files, using the devilishly clever rsync algorithm. It calculates diffs without needing both files to be present. This little bit of magic is described in the documentation accompanying the program (for those interested in such). rsync then does on-the-fly compression, making network file transfers very fast and efficient.
rsync has some lovely security features. It supports ssh, which is the recommended protocol for secure network file transfer. It copies the bits to be transferred to a temporary file, then builds the upload from the temporary file, minimizing the chances of something bad happening to the original. It also has a useful "dry-run" command option for testing new command options safely.
rsync is simple to use, but don't let simplicity fool you -- it is a powerful tool, and bad things can happen just as easily as good things. rsync runs on Linux and Windows (see Resources for downloads and installation instructions).