技术在于专研
分类: LINUX
2015-01-14 10:13:48
原文地址:subversion迁移过程中增量备份脚本 作者:鸟哥のlinux
在过程中,我采用svnadmin hotcopy来导出数据,建议使用svnadmin dump来全量,因为旧的是1.4.x版本,要的新服务器版本为1.6.6,所有在导入dump文件的时候会出错,可能是subversion的bug的,当文件过去后,为了保证数据的完整性,需要对库进行最后一次,这时候就不需要全量了,只需要把更新的内容添加下。
在subversion工作过程中,当subversion有更新时,他就会记录顺序号,无限递增,所以我们只需要之后的就ok!
下面是一段简单的备份:
#!/bin/bash
svn_repos=”/svn/roc” #要备份的库
backup_dir=”/home/linlp/backup” #备份文件存放路径
rsync_repos=”/home/linlp/roc” #hotcopy已经的库
next_backup_file=”add_incremental_backup.”.`date +%Y%m%d`
log=”$backup_dir/last_backed_up”.`date +%Y%m%d` #日志文件
echo “********************”`date`”***************”>> $log
echo “SVN ADD DUMP start!”>> $log
first_rev=”`/usr/local/subversion/bin/svnlook youngest $rsync_repos`” #上一次备份库的版本号
last_rev=”`/usr/local/subversion/bin/svnlook youngest $svn_repos`” #现在源库的版本号
if [ $first_rev -eq $last_rev ];then
echo “No new revisions to backup.”
exit 0
else
echo “Backing up revisions $first_rev …”
/usr/local/subversion/bin/svnadmin dump –incremental –revision $first_rev:$last_rev $svn_repos > $backup_dir/$next_backup_file #取中间值
fi
echo “Fist:$first_rev”>> $log
echo “Last:$last_rev”>> $log #记录备份的版本号echo “********************”`date`”***************”>>$log
我们来看下记录的日志:
********************Wed Dec 21 11:54:04 CST 2011***************
SVN ADD DUMP start!
Fist:24468
Last:24476
********************Wed Dec 21 11:55:37 CST 2011***************
说明这次备份是从24468更新到27796
注意:备份处理的文件只是dump文件,要导入库才可以使用。