Chinaunix首页 | 论坛 | 博客

OPS

  • 博客访问: 508264
  • 博文数量: 117
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1210
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-05 14:50
个人简介

hellow 运维

文章分类

全部博文(117)

文章存档

2019年(1)

2018年(1)

2017年(45)

2016年(38)

2015年(32)

我的朋友

分类: 系统运维

2017-06-15 11:30:24

svn的自动惹备份都备份服务器{算是主从备份吧}
1:svn的搭建
  http://blog.chinaunix.net/uid-30234663-id-5025404.html
2:svn的自动备份
       192.168.1.129服务器是源代码服务器 svn_server
       192.168.1.166服务器是目标代码服务器  svn_back
  在129服务器上创建一个repo0的代码仓库并且初始化代码仓库和上传数据(数据仓库)
   在166服务器上创建一个repo的代码仓库只是初始化(空仓库)
  代码路径:/data/svn/repo0(根据自己的磁盘做规划)
我配置好的配置文件(conf和密码文件)在我的网盘里面

需要在服务器上吧svnserver都启动,防火墙开启3690端口
-A INPUT -p tcp -m tcp --dport 3690 -j ACCEPT

3:开始执行备份
在129上直接运行:
svnsync init svn://192.168.1.166/repo0 svn://192.168.1.129/repo0
即svnsync init 目标svn链接  源svn链接,执行同步之前的初始化
这一步失败了,报如下错误:
svnsync: Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook
提示需要在hooks下面创建一个pre-revprop-change hook
简单解释下,hook类似于操作系统的勾子,svn会在收到一些操作请求的时候执行hooks目录下的对应的脚本,例如想要commit的时候做一些事情就可以在对应的脚本下面添加你要执行的命令,下一次在commit 的时候就会触发执行
一开始没明白,不知道应该在源机器上创建还是在目标机器上创建,其实是在目标机器上创建的
然后在目标机器上copy了一份pre-revprop-change.tmpl成pre-revprop-change
再次执行初始化命令
修改pre-revprop-change为  注意{166 129上都弄一份  我没有测试这个必须在那个服务器上}
cat << EOF >>pre-revprop-change
#!/bin/sh
exit 0
EOF
再次执行
svnsync init svn://192.168.1.166/repo0 svn://192.168.1.129/repo0
再次初始化,终于成功,提示先让你输入用户名密码
第一个是让你数据root的密码   跳过
然后你输入有可写权限的用户即可
再输入yes
svnsync sync svn://192.168.1.1666/repo0
即可自动把129代码备份到166服务器上

4:如果你一不小心断网了或者把这个进程停止了
再次执行上面的语句就会出现如下错误
svnsync sync svn://192.168.1.1666/repo0
 

svnsync failed to get lock on destination repos
解决办法

 

删除SVN仓库修订号0  svn:sync-lock的保护.

svn propdel svn:sync-lock --revprop -r 0


然后在同步就可以了

如果你想代码一旦提交都自动同步到166服务器

需要到129的hooks下面把pre-commit.tmpl copy成pre-commit

在里面加上

svnsync sync svn://192.168.1.1666/repo0

即可自动热备了
































阅读(4211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~