Install All Required Cygwin Modules
First, I installed any missing required modules for cygwin. At first, I had trouble with ssh, because it complained it couldn't find cygssp-0. Using cygcheck confirmed the missing library.
~$ cygcheck ssh Found: C:\cygwin\bin\ssh.exe Found: C:\cygwin\bin\ssh.exe Found: C:\cygwin\bin\ssh.exe C:\cygwin\bin\ssh.exe C:\cygwin\bin\cygcrypto-0.9.8.dll C:\cygwin\bin\cygwin1.dll C:\Windows\system32\ADVAPI32.DLL C:\Windows\system32\ntdll.dll C:\Windows\system32\KERNEL32.dll C:\Windows\system32\RPCRT4.dll C:\cygwin\bin\cygz.dll C:\cygwin\bin\cyggcc_s-1.dll cygcheck: track_down: could not find cygssp-0.dll
Once I installed libsso0, rsync was working correctly, but required a password to be entered.
Setup Passwordless Login
Setting up passwordless login was really easy. In an sftp connection, I made a .ssh directory from my home backup server's directory, copied my cygwin's .ssh/id_dsa.pub to the new .ssh directory and renamed the file to authorized_keys.
Determining Directories and Files to Copy
I made an exclusion list of files not to backup and named that file excl.txt. Here's what the file contains:
*.obj *.tmp *.sbr *.ilk *.pch *.pdb *.idb *.ncb *.opt *.plg *.aps *.dsw *.pyc *.pyd *.bsc *.pdb *.projdata *.projdata1 .svn/ .git/ .bzr/ .hg/
Then I made a shell script called, backup_to_dreamhost.sh, to backup only certain directories:
#!/bin/bash rsync -e ssh -avz --exclude-from=excl.txt /cygdrive/c/Users/David/Documents email@example.com:~/David rsync -e ssh -avz --exclude-from=excl.txt /cygdrive/c/Users/David/Downloads firstname.lastname@example.org:~/David rsync -e ssh -avz --exclude-from=excl.txt /cygdrive/c/Users/David/Pictures email@example.com:~/David rsync -e ssh -avz --exclude-from=excl.txt /cygdrive/c/Users/David/Music firstname.lastname@example.org:~/David rsync -e ssh -avz --exclude-from=excl.txt --exclude=Pinnacle/ /cygdrive/c/Users/Public/Documents email@example.com:~/Public ...
Note that occasionally I have to exclude some directories that contain massive amounts of video or temporary files. I can't copy my pictures and videos without taking up more than the free 50GB space allocated for backups.
Making Automatic Backups
I ran the shell script from within cygwin, and it worked. But now, how to make Vista run it? I created a DOS Batch script called, backup_to_dreamhost.bat. It contains only one line:
C: && chdir C:\cygwin\home\username && C:\cygwin\bin\bash --login ~/backup_to_dreamhost.sh
And from the Windows Task Scheduler, I created a recurring task that runs backup_to_dreamhost.bat.