码迷,mamicode.com
首页 > 其他好文 > 详细

svn备份方案--镜像库

时间:2016-09-05 11:53:21      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

原理:在源库通过hook脚本实现每次提交都与镜像库进行同步。

实现该方案需要如下步骤:

1、在备份服务器上建立一个空库。

2、修改新建库hooks目录下的pre-revprop-change脚本,将其中的exit 1改为0。

3、执行svnsync init backupurl sourceurl --source-username xxx --source-password xxxxxx --sync-username xxx --sync-password xxxxxx

    eg: svnsync init file:///home/svn/backup file:///home/svn/sop/ --source-username ace --source-password ace.123 --sync-username ace --sync-password ace.123

4、在源库执行svnsync sync backupurl进行初次同步。

    eg: svnsync sync http://172.17.200.120/svn/backup/ (有可能存在权限问题:chmod -R o+rw /home/svn/)

5、设置hook脚本进行实时同步:

    在源库的hooks目录下编辑post-commit脚本,添加svnsync sync backupurl命令到脚本中(建立在命令中指定用户名和密码),eg:  

svnsync sync http://172.17.200.120/svn/backup/  --sync-username admin.svn --sync-password ‘s>v>n123‘

    全部完成之后,每次新的提交都会调起post-commit脚本进行同步了。

 

附:

通过jenkins对备份进行监控

之前设置了备份的实时进行,但是备份是否成功任然需要到镜像库的服务器上进行查看,这里将介绍如何使用jenkins对备份结果进行check。

这里也有两种方案

1,通过在hook脚本中添加对jenkins job的http请求来调起job进行check

Jenkins可以通过REST API进行交互,首先建立一个jenkins job,运行在镜像库所在的服务器上,通过输入的参数(镜像库地址,源库版本号,源库UUID)和镜像库参数的比较进行备份的验证。

在源库的hook脚本同步命令下面添加如下一条命令curl -X POST "http://jenkinsserver:8080/jenkins/view/backup_and_restore/job/jobname/buildWithParameters?version=${version}&backupurl=/home/svn/${REPOS}&uuid=${UUID}"

Curl是linux下面进行http交互的工具,没有的话需要安装,-X POST即以post方式调用目标链接,要调起jenkins job需要此方式才行,后面跟的链接中?前的部分既是jenkins job的路径,后面是需要传递过去的参数,参数可以在hook脚本中执行命令获取后传递给jenkins job。

2,通过jenkins上的svn插件对源库进行跟踪

Jenkins的svn插件可以实时跟踪指定svn库的提交情况,每次新的提交都会自动调起jenkins job。但是无法获取备份库的路径,只能在job里进行指定,不过可以避免登陆服务器修改hook脚本的工作。

svn备份方案--镜像库

标签:

原文地址:http://www.cnblogs.com/hanfang/p/5841387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!