使用svnsync备份svn

使用svnsync备份svn

十月 22, 2018

使用svnsync备份svn

环境信息

源svn库:http://10.205.59.16/svn/repository/   

备份svn库:http://10.205.59.14:8000/svn/repository/

备份策略

使用svnsync制作镜像库,实现双机实时备份。以下以java_code为例。同步时两边建立一个相同的用户和密码,方便同步,这里为apprun。

1、在备份库上建立相同名字的版本库。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
svnadmin create /opt/svn/java_code 
```

### 2、在备份库java_code目录下,创建pre-revprop-change钩子脚本,内容只有一行:exit 0

```sh
cp /opt/svn/java_code/hooks/pre-revprop-change.tmpl /opt/svn/java_code/hooks/pre-revprop-change chmod 755 /opt/svn/java_code/hooks/pre-revprop-change #赋予执行权限
```

### 3、执行初始化

```sh
在源svn库上执行: svnsync init http://10.205.54.14:8000/svn/java_code http://10.205.54.16/svn/java_code
```

### 4、执行同步

```sh
在源svn库上执行: svnsync sync --non-interactive http://10.205.54.14:8000/svn/java_code --sync-username apprun --sync-password uWUh2f
```

### 5、更新同步

```sh
在源svn库中,建立钩子脚本,实时更新至备份库。
cp /opt/svn/java_code/hooks/post-commit.tmpl /opt/svn/java_code/hookspost-commit
最后两行替换为
svnsync sync --non-interactive http://10.205.54.14:8000/svn/java_code --username apprun --password PASSWORD chmod 755 /opt/svn/java_code/hooks/hookspost-commit #赋予执行权限