offers a personal backup service. Here are some notes on what I did to get it working from my Microsoft Windows Vista system.
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.
Once I installed libsso0, rsync was working correctly, but required a password to be entered.
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.
I made an exclusion list of files not to backup and named that file excl.txt. Here's what the file contains:
Then I made a shell script called, backup_to_dreamhost.sh, to backup only certain directories:
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.
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:
And from the Windows Task Scheduler, I created a recurring task that runs backup_to_dreamhost.bat.
Dreamhost
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 user@b.dh.com:~/David rsync -e ssh -avz --exclude-from=excl.txt /cygdrive/c/Users/David/Downloads user@b.dh.com:~/David rsync -e ssh -avz --exclude-from=excl.txt /cygdrive/c/Users/David/Pictures user@b.dh.com:~/David rsync -e ssh -avz --exclude-from=excl.txt /cygdrive/c/Users/David/Music user@b.dh.com:~/David rsync -e ssh -avz --exclude-from=excl.txt --exclude=Pinnacle/ /cygdrive/c/Users/Public/Documents user@b.dh.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.
Comments
BTW what about the speed?
But speed for backup isn't that important, right? The first backup is huge and slow. And all the subsequent rsync backups only send the files that've changed, so that'll go much more quickly, and I've set those to run at a time when nobody will want to be on the computer.