subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Canfield <andy.canfi...@pimco.mobi>
Subject My Backup Script
Date Tue, 26 Jul 2011 06:33:09 GMT
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.

#! /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
     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.


Mime
View raw message