安装完svn后,做如下操作:
svnadmin svnlook 需要写入 /usr/bin 直接调用。
1,文件 svnbak.sh
#!/bin/ksh
PROJECT_PATH=/svn-bak
INDEX_FILE=index.txt
BEGIN=`cat $INDEX_FILE`
ENDNO=`svnlook youngest $PROJECT_PATH`
FILENAME=svn-bak_$BEGIN-$ENDNO.dmp
svnadmin dump $PROJECT_PATH -r $BEGIN:$ENDNO --incremental >$FILENAME
gzip $FILENAME
#NUMNO=`echo "$NUMNO + 1"|bc`
ENDNO=`expr $ENDNO + 1`
echo $ENDNO > $INDEX_FILE
2,真实文件中的备份脚本
#!/bin/ksh
PROJECT_PATH=/home/svn
INDEX_FILE=/home/svnbak/index.txt
BEGIN=`cat $INDEX_FILE`
ENDNO=`svnlook youngest $PROJECT_PATH`
FILENAME=svn-bak_$BEGIN-$ENDNO.dmp
svnadmin dump $PROJECT_PATH -r $BEGIN:$ENDNO --incremental >/home/svnbak/$FILENAME
gzip /home/svnbak/$FILENAME
# tar zcf tar.gz mei you gzip hao
# gzip -d *.gz he gzip yasuo he jieya
#NUMNO=`echo "$NUMNO + 1"|bc`
ENDNO=`expr $ENDNO + 1`
echo $ENDNO > $INDEX_FILE
加其它用户的可执行权限:
问题:
解决:
修改 index.txt 里的版本号为 1 然后重新执行 将从版本1开始做备份。
备份 : 每天都做增量备份
恢复 : 将这些备份 一个一个的导入SVN库里
通过测试
[root@jbxue svnbak]# ls
index.txt svnbak.sh
[root@jbxue svnbak]# echo 0 > index.txt
[root@jbxue svnbak]# ./svnbak.sh
* Dumped revision 0.
* Dumped revision 1.
* Dumped revision 2.
* Dumped revision 3.
* Dumped revision 4.
* Dumped revision 5.
* Dumped revision 6.
* Dumped revision 7.
* Dumped revision 8.
* Dumped revision 9.
[root@jbxue svnbak]# ./svnbak.sh
* Dumped revision 10.
[root@jbxue svnbak]# ls
index.txt svnbak.sh svn-bak_0-9.dmp.gz svn-bak_10-10.dmp.gz
[root@jbxue svnbak]# ll
total 24
-rw-r--r-- 1 root root 3 May 12 06:05 index.txt
-rwxrwxrwx 1 root root 364 May 12 05:57 svnbak.sh
-rw-r--r-- 1 root root 745 May 12 06:05 svn-bak_0-9.dmp.gz
-rw-r--r-- 1 root root 386 May 12 06:05 svn-bak_10-10.dmp.gz
[root@jbxue svnbak]# gzip -d svn-bak_1-8.dmp.gz
[root@jbxue svnbak]# gzip -d svn-bak_9-9.dmp.gz
[root@jbxue svnbak]# svnadmin load /home/svn3 < svn-bak_0-9.dmp
[root@jbxue svnbak]# svnadmin load /home/svn3 < svn-bak_10-10.dmp
gzip 参数信息
计划任务
1,保证 crond 进程是开启的 ps -aux | grep cond
2,写入计划任务
每天 09:00 执行 备份脚本
就介绍这些吧,希望有助于大家理解svn进行增量备份的方法。
脚本学堂,祝大家学习进步。