BackupPC-users

Re: [BackupPC-users] Fwd: Complete cygwin/VSS/rsync solution for Windows Backup

2010-06-08 15:27:42
Subject: Re: [BackupPC-users] Fwd: Complete cygwin/VSS/rsync solution for Windows Backup
From: Gerald Brandt <gbr AT majentis DOT com>
To: "General list for user discussion, questions and support" <backuppc-users AT lists.sourceforge DOT net>
Date: Tue, 8 Jun 2010 14:35:11 -0500 (CDT)
Here it is, in a nutshell:

http://geraldbrandt.com/2010/06/08/backuppc-with-sshrsyncvss-on-windows-server

Gerald



----- Original Message -----
> Hmmm, that got sent early. Damn keyboard.
> 
> I'll put it on my website, where I can format it properly, and post a
> link here.
> 
> Gerald
> 
> 
> 
> From: "Gerald Brandt" <gbr AT majentis DOT com>
> To: "General list for user discussion, questions and support"
> <backuppc-users AT lists.sourceforge DOT net>
> Sent: Tuesday, June 8, 2010 1:29:50 PM
> Subject: Re: [BackupPC-users] Complete cygwin/VSS/rsync solution for
> Windows Backup
> 
> This works (tested) on Server 2003, where vshadow can mount a shadow
> copy as a directory.
> 
> 1. Download cygwin 1.7+ from the regular place
> 2. install the default system, plus the following: cygrunsrv, openssh,
> and rsync
> 3. I also install joe (my editor of choice), and procps (for top)
> 4. start a cygwin shell and type:
> # ssh-host-config -y
> # cygrunsrv -S sshd
> 
> 5. I then attempt to ssh into my backupPC system from cygwin, just a
> nice test, and creates the .ssh directory for me.
> 6. Copy BackupPC's public key over
> # scp root@backuppc:/var/lib/backuppc/BackupPCkey.pub
> ~/.ssh/authorized_keys
> 
> 7. Install the following scripts to Administrators home directory
> 
> pre-backuppc.sh
> ---------------
> 
> $ #!/bin/bash
> 
> # script to create shadow copies of Windows drives and export them to
> a # drive letter for BackupPC backup
> # the shadow copies get mount to c:\shadow\(drive letter). The
> directory # structure must exist
> 
> # Launches passed input via 'at' to get around $USERNAME=SYSTEM
> # problem under ssh login where the shell lacks permsisions to run
> # commmands like vshadow or dosdev
> # from a script by Jeffrey J. Kosowsky
> function at_launch ()
> { local h m s wait1 command
> if [ $3 != "" ] ; then
> command="${1} ${2} >> ${3}"
> else command="${1} ${2}"
> fi
> 
> set -- $(date +"%H %M %S")
> h=$((10#$1)) #Note explicitly use base 10 so that 08 and 09 not
> interpreted as bad octal
> m=$((10#$2 +1)) #Advance minutes by 1
> s=$((10#$3)) wait1=$((60 - $s))
> [ $s -gt 55 ] && let "m += 1" "wait1 += 60" # Make sure >5 seconds
> left [ $m -ge 60 ] && let "m %= 60" "h += 1" #Overflow minutes
> let "h %= 24"
> at $h:$m $(cygpath -w $(which bash.exe)) -c \"$command\"
> # > /dev/null
> 
> echo Running \'$command\' at $h:$m
> return $wait1
> }
> 
> 
> # create the command to shadow the drive, and wait 2 minutes plus the
> seconds # before the at command runs before returning (make sure
> shadow copy is made)
> function shadow_drive ()
> { date
> echo Shadowing Drive $@
> local wait1
> drive=$@
> 
> at_launch "/cygdrive/c/WINDOWS/vshadow.exe -p" $drive
> "/home/Administrator/vshadow-out" wait1=$?
> let "wait1 += 120"
> echo sleeping for $wait1
> sleep $wait1
> date echo done sleep
> }
> 
> 
> # get the guids from the vshow-out file and place them into the
> shadow-guids # file for the post-backuppc scripts use (and hours for
> mapping to directory)
> function get_guids ()
> { echo Getting shadow copy GUIDS
> cat ~/vshadow-out | grep "* SNAPSHOT ID" | awk '{print $5}' >>
> ~/shadow-guids }
> 
> 
> 
> function map_shadow ()
> { echo Mapping GUID $1 to $2
> local wait1
> local guid="$1"
> local dir="$2"
> at_launch /cygdrive/c/WINDOWS/vshadow.exe -el=$guid,$dir
> "/home/Administrator/map.out" wait1=$?
> let "wait1 +=30"
> sleep $wait1
> } date
> 
> # get rid of the guids file if it exists
> rm ~/shadow-guids
> rm ~/vshadow-out
> rm ~/map.out
> 
> sleep 10
> 
> # create the snapshots
> # *EDIT* edit this to match the system
> shadow_drive c:
> shadow_drive d:
> 
> # get the guids into a single file
> get_guids
> 
> loop=0
> 
> # create the shadow directory structure AFTER we make the shadow
> copies # the post-backuppc.sh script deletes this tree after removing
> the mounts mkdir /cygdrive/c/shadow
> mkdir /cygdrive/c/shadow/c
> mkdir /cygdrive/c/shadow/d
> 
> # loop throuh the guids and map to mount point
> # assumes guids in file are in order of shadows created
> while read line ;
> do if [ $loop == 0 ] ; then
> map_shadow $line "c:\\\\\shadow\\\\\c"
> fi
> 
> if [ $loop == 1 ] ; then
> map_shadow $line "c:\\\\\shadow\\\\\d"
> fi
> 
> let "loop += 1"
> done < ~/shadow-guids
> 
> post-backuppc.sh
> -------------------
> 
> $ #!/bin/bash
> 
> # script to delete the shadow copies used by backuppc
> 
> 
> while read line ;
> do vshadow -ds=$line
> done < ~/shadow-guids
> 
> 
> # now clean up the directory structure
> #rmdir /cygdrive/c/shadow
> 
> 
> 8. In the BackupPC config for the system (I use the web page to edit
> the
> con:fig) Add the following
> 
> 
> 
> From: "Bowie Bailey" <Bowie_Bailey AT BUC DOT com>
> To: backuppc-users AT lists.sourceforge DOT net
> Sent: Tuesday, June 8, 2010 11:24:24 AM
> Subject: Re: [BackupPC-users] Complete cygwin/VSS/rsync solution for
> Windows Backup
> 
> Gerald Brandt wrote:
> > Hi,
> >
> > As of today, I have all my Windows Servers being backed up via rsync
> > (not rsyncd) and ssh. I can now manage my Linux and Windows backups
> > the same way.
> >
> > My solution doesn't require dosdev.exe, it uses vshadows ability to
> > map a shadow copy to any directory.
> >
> > BackupPC ssh's into the windows box and runs my bash script
> > 'pre-backuppc.sh', then ssh's in to do the rsync backup, and when
> > done, ssh's in runs post-backuppc.sh.
> >
> > I borrowed some stuff from other peoples scripts (specifically the
> > 'at' command stuff to get permissions to run vshadow.exe), and the
> > rest is really simple.
> >
> > If anyone is interested, I can post the scripts here, and how I
> > setup cygwin 1.7
> >
> 
> Post it. It's always useful to have a complete solution posted to make
> it easier on the next person.
> 
> -- Bowie
> 
> ------------------------------------------------------------------------------
> ThinkGeek and WIRED's GeekDad team up for the Ultimate
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
> lucky parental unit. See the prize list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________ BackupPC-users mailing
> list BackupPC-users AT lists.sourceforge DOT net
> List: https://lists.sourceforge.net/lists/listinfo/backuppc-users
> Wiki: http://backuppc.wiki.sourceforge.net
> Project: http://backuppc.sourceforge.net/
> 
> ------------------------------------------------------------------------------
> ThinkGeek and WIRED's GeekDad team up for the Ultimate
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
> lucky parental unit. See the prize list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________ BackupPC-users mailing
> list BackupPC-users AT lists.sourceforge DOT net
> List: https://lists.sourceforge.net/lists/listinfo/backuppc-users
> Wiki: http://backuppc.wiki.sourceforge.net
> Project: http://backuppc.sourceforge.net/

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
BackupPC-users mailing list
BackupPC-users AT lists.sourceforge DOT net
List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki:    http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/

<Prev in Thread] Current Thread [Next in Thread>
  • Re: [BackupPC-users] Fwd: Complete cygwin/VSS/rsync solution for Windows Backup, Gerald Brandt <=