原文出处:https://blog.51cto.com/ylw6006/1414267

全量备份参考脚本:

[root@dev ~]# echo '00 01 1 /usr/local/scripts/incr0_svn.sh' > /var/spool/cron/root
[root@dev ~]# cat /usr/local/scripts/incr0_svn.sh
#!/bin/sh
DATE=$(date +%Y%m%d:%H:%M:%S) #定义时间变量,用于文件名后缀
SVN_DIR=/svn_data/jsb #定义SVN库目录变量
SVN_BAK_DIR=/svn_data/backup/ #定义备份文件存放目录变量
echo '0' > /tmp/jsb_svn_id #初始化版本号,全库备份一定是从0版本号开始
NUM1=$(cat /tmp/jsb_svn_id) #取初始化版本号
NUM2=$(svnlook youngest $SVN_DIR) #取当前最新的版本号
#开始备份
svnadmin dump $SVN_DIR -r $NUM1:$NUM2 --incremental > $SVN_BAK_DIR/jsbbak$DATE
#判断备份是否成功,若成功,则记录当前最新的版本号到临时文件中,用于下次增量备份使用
if [ $? -eq 0 ];
then
echo $NUM2 > /tmp/jsb_svn_id
else
echo "backup fail...."
fi

增量备份参考脚本:

[root@dev ~]# echo '00 02 * /usr/local/scripts/incr1_svn.sh' > /var/spool/cron/root
[root@dev ~]# cat /usr/local/scripts/incr1_svn.sh
#!/bin/sh
DATE=$(date +%Y%m%d:%H:%M:%S) #定义时间变量,用于文件名后缀
SVN_DIR=/svn_data/jsb #定义SVN库目录变量
SVN_BAK_DIR=/svn_data/backup/ #定义备份文件存放目录变量
NUM1=$(cat /tmp/jsb_svn_id) #取初始化版本号
NUM2=$(svnlook youngest $SVN_DIR) #取当前最新的版本号
#开始备份
svnadmin dump $SVN_DIR -r $NUM1:$NUM2 --incremental > $SVN_BAK_DIR/jsbbak$DATE
#判断备份是否成功,若成功,则记录当前最新的版本号到临时文件中,用于下次增量备份使用
if [ $? -eq 0 ];
then
echo $NUM2 > /tmp/jsb_svn_id
else
echo "backup fail...."
fi