svnsync 同步方式
1、克隆生产环境服务器
2、检查克隆机与生产环境中的仓库数目是否一致。
-
ls | wc -w #统计svn目录下文件及目录的总数,如果不一致,把缺少的仓库拷贝至克隆机上
3、检索出哪些仓库的hooks中不含pre-commit
#!/bin/bash #记录下哪些仓库不含pre-commit脚本 for SVN_REPO in $(ls /app/svn) do if [ -d "/app/svn/$SVN_REPO/hooks" ]&&[ ! -f "/app/svn/$SVN_REPO/hooks/pre-commit" ] then echo $SVN_REPO fi done |
4、把 pre-revprop-change保存在 /app/toos/下,然后再把此文件拷贝至每个 仓库的hooks下
#!/bin/bash #在app/tools 目录下存放正确的 pre-revprop-change(内容和权限) #拷贝pre-revprop-change至每个库的hooks中 for SVN_REPO in $(ls /app/svn) do if [ -d "/app/svn/$SVN_REPO/hooks" ] then cp -af /app/tools/pre-revprop-change /app/svn/$SVN_REPO/hooks fi done |
4、对所有仓库进行初始化、同步、和拷贝脚本
#!/bin/bash #在app/tools 目录下存放正确的 pre-revprop-change(内容和权限) 和 pre-commit #拷贝pre-revprop-change至每个库的hooks中 for SVN_REPO in $(ls /app/svn) do if [ -d "/app/svn/$SVN_REPO/hooks" ] then cp -af /app/tools/pre-revprop-change /app/svn/$SVN_REPO/hooks ##修改hooks目录下的pre-reyprop-change svnsync --allow-non-empty init file:///app/svn/$SVN_REPO http://test.com.cn/$SVN_REPO ##初始化 svnsync sync file:///app/svn/$SVN_REPO ##同步 sleep 3 ##休眠3秒 cp -af /app/tools/pre-commit /app/svn/$SVN_REPO/hooks #拷贝脚本至hooks下 fi done |
6、参考步骤3,把仓库中的pre-commit删除。
7 、对svn下 所有的文件进行授权
chown -R appadmin:appadmin svn
chmod -R a+rw svn
svn dump 增量备份的方式
1、克隆生产环境服务器
2、增量备份
#!/bin/bash #通过svn dump进行备份还原 #把168.61.114.20上svn上所有库 还原至 168.61.113.223 ## 准备工作:把源服务器上/app/svn/conf和其他文件移到其他地方,/app/svn目录下只保存库目录 VERSION=0 #通过增量备份 还原目标服务器库 for SVN_REPO in $(ls /app/svn) do #查看源标服务器各个库版本 VERSION=$(svnlook youngest /app/svn/$SVN_REPO) #目标服务器上svn增量备份 sshpass -p 'test@0123465' ssh appadmin@168.61.114.20 "svnadmin dump --incremental -r $(( $VERSION+1 )):head /app/svn/$SVN_REPO>/app/backup/$SVN_REPO.dump" #目标服务器上的备份文件拷贝至源服务器 sshpass -p 'test@0123465' scp appadmin@168.61.114.20:/app/backup/$SVN_REPO.dump /app/backup #源服务器上进行还原 svnadmin load /app/svn/$SVN_REPO </app/backup/$SVN_REPO.dump #拷贝hook脚本文件 cp -f /app/backup/pre-commit /app/svn/$SVN_REPO/hooks/ #对版本库进行授权 chmod -R 777 /app/svn done |
参考资料3
SVN 实时同步:
http://blog.51cto.com/php2012web/1852311
https://blog.csdn.net/xyw591238/article/details/51914908