1 svn完全备份脚本的书写

vi  /data/myscripts/fullsvnbackup 内容如下:

  1. #!/bin/bash  
  2. #author:liuhaiqing  
  3. #date:20110719  
  4. riqi=$(date +'%Y%m%d')  
  5. backupdir=/data/svnback  
  6. mkdir -p $backupdir/$riqi  
  7. old=$(svnlook youngest /data/svn/repos/test/)  
  8. echo "$old" >/tmp/oldnumber  
  9. svnadmin dump /data/svn/repos/test --revision 0:$old --incremental >$backupdir/$riqi/0-"$old"svn.bak  

2 svn增量备份脚本书写

vi /data/myscripts/zengliangsvnbackup

  1. #!/bin/sh  
  2. riqi=$(date +'%Y%m%d')  
  3. backupdir=/data/svnback  
  4. mkdir -p $backupdir/$riqi  
  5. old=$(cat /tmp/oldnumber)  
  6. new=$(svnlook youngest /data/svn/repos/test/)  
  7. if [ $old = $new ]  
  8. then  
  9. echo "svn don't need backup"  
  10. else  
  11. b=$(expr 1 + $old)  
  12. echo "$new" >/tmp/oldnumber  
  13. svnadmin dump /data/svn/repos/test --revision $b:$new --incremental >$backupdir/$riqi/"$b"-"$new"svn.bak  
  14. fi 

3 增加计划任务

  1. 0  3  * * * sh /data/myscripts/fullsvnbackup   
  2. 0  8-20/2 * * * sh /data/myscripts/zenglingsvnbackup 

4 svn还原

恢复顺序从低版本逐个恢复到高版本;即,先恢复最近的一次完整备份,然后恢复紧挨着这个文件的增量备份

 

  1. cd /data/svn/repos/  
  2. svnadmin create test2  
  3. svnadmin load test2 </data/svnback/20110719/0-1112svn.bak   
  4. svnadmin load test2 </data/svnback/20110719/1113-1113svn.bak   
  5. chown -R daemon.daemon test2 

至此恢复成功

5 附上脚本,以免复制粘贴出问题