如何用rsync来同步SVN数据库

需求:   有一个SVN主服务器, 要建一个SVN镜像服务器,以方便镜像服务器所在区域能够高速下载代码

解决方案: 假定SVN主服务器的IP是192.168.1.131,  镜像服务器的IP是192.168.2.132,且假定131 SVN数据库的地址是/work/svn

步骤:

1.  在132上创建 /work/svn目录

2.  在131和132上分别执行ssh-keygen -t rsa, 一路回车(全部默认)

3. 在131上执行$ssh-copy-id -i [email protected], 在132上执行$ssh-copy-id -i [email protected]

注: 完成第2、3步可以实现ssh访问免密码

4. 在132上新建一个ssh脚本,内容如下:

#!/bin/sh
while true
do 
rsync -vzrtopgu --progress --delete [email protected]:/work/svn/ /work/svn
sync
sleep 1m
done

注:该脚本无限循环执行同步命令,每完成一次,休眠1分钟

5. 完成以上动作后,在131上提交一笔代码,待1分钟之后,利用SVN客户端登录132服务器,可以看到最新的提交。


特别说明: 不要用计划任务来做同步,因为计划任务并不能保证两个任务是串行的(如第一个任务未完成,下一个任务又到来)



你可能感兴趣的:(数据库,SVN,脚本,服务器,ssh,任务)