backup subversion repository over email
1 2 #!/bin/bash 3 # 4 # $Id: repodiff 3 2006-09-21 18:48:39Z sevkin $ 5 # 6 # subversion repository incremental backup over e-mail 7 # 8 # (c) 2006 Vsevolod Balashov under terms of GNU GPL v.2 or later 9 10 SVNROOT=/var/svn 11 EMAIL=your@email.here 12 STORE=`mktemp -d` 13 GPGCRYPT=n 14 15 for REPO in `ls $SVNROOT`; do 16 REPOPATH=$SVNROOT/$REPO; 17 if [ -r $REPOPATH/youngest ]; then 18 LATEST=`cat $REPOPATH/youngest` 19 YOUNGEST=`svnlook youngest $REPOPATH` 20 if [ $LATEST -lt $YOUNGEST ]; then 21 svnadmin dump $REPOPATH --incremental -r $LATEST:$YOUNGEST >$STORE/$REPO 2>/dev/null 22 fi 23 else 24 svnadmin dump $REPOPATH --incremental >$STORE/$REPO 2>/dev/null 25 fi 26 echo $YOUNGEST >$REPOPATH/youngest 27 done 28 29 if [ `ls $STORE | wc -w` -gt 0 ]; then 30 BACKUP=repodiff_`date -u +%Y%m%d%H%M%S`.tar.bz2 31 ATTACH=$STORE/../$BACKUP 32 tar -C $STORE -cjf $ATTACH . 33 if [ $GPGCRYPT = y ]; then 34 gpg -e -r $EMAIL $ATTACH 35 ATTACH=$ATTACH.gpg 36 fi 37 echo "." | mutt -c $EMAIL -a $ATTACH -s "repository incremental backup" 38 rm -f $ATTACH 39 fi 40 41 rm -rf $STORE