Backup Notes

Cygwin/Rsync backup

1. Install Cygwin, with these packages:
  • Editors/vim
  • Net/openssh (and dependencies)
  • Net/rsync

2. Create backup config directory %USERDIR%\cygwin-backup
  1. Add config files to backup directory:
  • exception_list.txt (list of files to ignore)
  • backuplist.txt (list of files/directories to back up, relative to the user profile path, Unix-style paths)
  • backup.sh (below)
  • backup.log (empty file)
  • backup.bat (below)

4. Create script backup.sh:
  1. !/bin/bash
echo
echo "backup started"
USERDIR="/cygdrive/c/Documents and Settings/"
BACKUPDIR=cygwin-backup
RSYNCACCT=1034
RSYNCSERV=usw-s001.rsync.net

date
cd "$USERDIR"
rsync -rvte ssh --exclude-from=$BACKUPDIR/exception_list.txt --delete --files-from=$BACKUPDIR/backuplist.txt . $RSYNCACCT@$RSYNCSERV:backups/ |tee -a $BACKUPDIR/backup.log 2>&1
scp $BACKUPDIR/backup.log $RSYNCACCT@$RSYNCSERV:backups/
ssh $RSYNCACCT@$RSYNCSERV "chmod -R 770 backups"
date


5. Create SSH keys, in Cygwin Bash shell (accept defaults, do not use passphrase):
ssh-keygen -t rsa
  1. Copy SSH public key up to server:
    scp .ssh/id_rsa.pub 1034@usw-s001.rsync.net:.ssh/authorized_keys

  2. Make backup script executable:
    chmod 775 /cygdrive/c/Documents\ and\ Settings/<USERNAME>/cygwin-backup/backup.sh

  3. Test:
    /cygdrive/c/Documents\ and\ Settings/Bill/cygwin-backup/backup.sh

  4. Create backup.bat batch file for Windows scheduler (edit path to .sh script):

@echo off
C:
chdir C:\cygwin\bin
bash --login -i -c "/cygdrive/c/Documents\ and\ Settings/Bill/cygwin-backup/backup.sh"

10. Create schedule as desired, using Windows scheduler to launch the batch file (note a password for the user is required).
  1. Change password for the backup location, and record password in intranet:
    ssh -t 1034@usw-s001.rsync.net passwd