Simple Rsync for Windows (How To)
December 28, 2005
Let’s say you want to back up your “my documents folder” every night to a server across a network. Rsync will take any new documents you’ve added, and put them in your folder on the server. It’ll also delete any documents you’ve deleted (if you tell it to.)
That’s pretty simple, and there are many ways of doing that.
Where Rsync shines is that it will do it with parts of files — let’s say you have a 3 gigabyte file that gets a little update each day. Instead of deleting the backed up copy and sending a new 3 gigabyte file, Rsync is smart enough to just send the parts that have changed.
It doesn’t have to know anything about what the file is — it can do it with a Word document, a spreadsheet, a database, etc.
This means it works well over network connections — even slow connections across the Internet. In fact, that’s more or less what it’s designed for. It’s also smart enough to compress data while it sends it, and to not choke off the entire connection while it works.
The downside of it is that it’s a “Unix” tool — if you have a Linux box, or even a Mac, it’s built right in.
Until recently however, if you wanted to use it on Windows, your only choice was to play around with some of the “make Unix stuff work on Windows tools” like Cygwin, which are rather fussy and temperamental, and mostly a pain in the butt to make work reliably.
Now however, there’s DeltaCopy.
DeltaCopy is real genuine Rsync, built into a “Windows Friendly” wrapper. It installs like any normal Windows program, and “just works” on Windows NT4, 2000, 2003 and XP.
Even better, it’s Freeware, released under GNU Public License (v.2), and source is available.
DeltaCopy consists of two pieces — the “Server” (which nominally is run on the machine where files are stored) and the “Client” (which runs on the machine you want to back up). The installer installs both pieces.
The only difficult thing for some folks will be that you have to configure the “service user” the first time you use the server. This essentially consists of telling it the name and password of an account on your Windows box that the service should log in as. The problem most XP users will run into is that this account has to have a password (which many XP users don’t have set), and has to be configured to allow “Log on as service”.
The solution to this is to A) put a password on the Administrator’s account, and B) set it up in the DeltaCopy client and let it fail to start the service. Then go to Control Panel | Administrative Tools | Services, find the DeltaCopy Server service, open the Properties, select the “Log On” tab, click “Browse” to change accounts, change to a different account and password, click “Apply”, and then change it back to the account and password you want to use and click “Apply” a second time. This should cause it to automatically add the “Log on as service” permission to that user. After that, you can start the service and you should be good to go from there.
Once you’re over this hump, DeltaCopy couldn’t be much simpler to use.
On the server, you’ll use the DeltaCopy Server tool to set up “Virtual Directories” that it will use to store your data.
Once this is done, you go to the Client, and select “Add New Profile”, which will prompt you for a name, and the name or IP address of the server. Fill those in, click “Test Connection” and (assuming that works) click the little “browse” button to get the names of the virtual directories from the server. Select the one you wand and press “Add Profile”
After your profile is set up, you can add files and folders that you want to back up to the profile.
The profile can be run manually by right clicking on it and selecting Run Now, or you can add it to the Windows Scheduler to be automatically run at your choice of days and times.
If you’re moving a lot of data, or are on a slow connection, the first time through can take awhile, but once it’s completed, keeping it updated tends to be very fast. I’ve tried this with data collections over 15 gigabytes in size, and with over 50,000 files, and it works like a champ.
In theory, it’s also still compatible with Rsync on Unix/Linux/BSD/Mac OS X etc. I haven’t tried this yet, but there’s no reason it shouldn’t work.