1
2
3
4
5
6
7
8
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