需求: 有一个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 root@192.168.1.132, 在132上执行$ssh-copy-id -i root@192.168.1.131
注: 完成第2、3步可以实现ssh访问免密码
4. 在132上新建一个ssh脚本,内容如下:
#!/bin/sh
while true
do
rsync -vzrtopgu --progress --delete root@192.168.1.131:/work/svn/ /work/svn
sync
sleep 1m
done
注:该脚本无限循环执行同步命令,每完成一次,休眠1分钟
5. 完成以上动作后,在131上提交一笔代码,待1分钟之后,利用SVN客户端登录132服务器,可以看到最新的提交。
特别说明: 不要用计划任务来做同步,因为计划任务并不能保证两个任务是串行的(如第一个任务未完成,下一个任务又到来)