[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: My Backup Script

From: David Chapman <dcchapman_at_acm.org>
Date: Tue, 26 Jul 2011 00:22:54 -0700

On 7/25/2011 11:33 PM, Andy Canfield wrote:
> For your information, this is my backup script. It produces a zip file
> that can be tranported to another computer. The zip file unpacks into
> a repository collection, giving, for each repository, a hotcopy of the
> repository and a dump of the repository. The hotcopy can be reloaded
> on a computer with the same characteristics as the original server;
> the dumps can be loaded onto a different computer. Comments are welcome.

The dump should use the hot copy as its source. Otherwise it may differ
from the hot copy. See my note inline.

>
> #! /bin/bash
>
> # requires root access
> if [ ! `whoami` == root ]
> then
> sudo $0
> exit
> fi
>
> # controlling parameters
> SRCE=/data/svn
> ls -ld $SRCE
> DEST=/data/svnbackup
> APACHE_USER=www-data
> APACHE_GROUP=www-data
>
> # Construct a new empty SVNParent repository collection
> rm -rf $DEST
> mkdir $DEST
> chown $APACHE_USER $DEST
> chgrp $APACHE_GROUP $DEST
> chmod 0700 $DEST
> ls -ld $DEST
>
> # Get all the names of all the repositories
> # (Also gets names of any other entry in the SVNParent directory)
> cd $SRCE
> ls -d1 * >/tmp/SVNBackup.tmp
>
> # Process each repository
> for REPO in `cat /tmp/SVNBackup.tmp`
> do
> # some things are not repositories; ignore them
> if [ -d $SRCE/$REPO ]
> then
> # back up this repository
> echo "Backing up $REPO"
> # use hotcopy to get an exact copy
> # that can be reloaded onto the same system
> svnadmin hotcopy $SRCE/$REPO $DEST/$REPO
> # use dump to get an inexact copy
> # that can be reloaded anywhere
> svnadmin dump $SRCE/$REPO >$DEST/$REPO.dump

svnadmin dump $DEST/$REPO >$DEST/${REPO}.dump

I generally use curly braces when punctuation is present to make sure
variable substitution occurs the way I want it.

> fi
> done
>
> # Show the contents
> echo "Contents of the backup:"
> ls -ld $DEST/*
>
> # zip up the result
> cd $DEST
> zip -r -q -y $DEST.zip .
>
> # Talk to the user
> echo "Backup is in file $DEST.zip:"
> ls -ld $DEST.zip
>
> # The file $DEST.zip can now be transported to another computer.
>
>

-- 
     David Chapman         dcchapman_at_acm.org
     Chapman Consulting -- San Jose, CA
Received on 2011-07-26 09:24:10 CEST

This is an archived mail posted to the Subversion Users mailing list.