1、脚本名:sync_auto.sh
内容如下:
#!/bin/bash
#sync from XXX to
MODULES="SDO_pt KF_031csevent SDRS3.0_KF OSServer_KF safe_fk XMGLProj
monitoring_dev"
for module in $MODULES
do
echo $module
cd "/sync69/$module/hooks"
chmod a+x pre-revprop-change
/usr/local/bin/svnsync sync
done
2、用crontab计划
crontab -e
0 2 * * * /home/svnroot/bin/sync_auto.sh >/home/svnroot/log 2>&1
注:遇到问题
问题1、log提示:permission denied
修改了脚本的权限chmod a+x /home/svnroot/bin/sync_auto.sh
问题2:log提示:/home/svnroot/sync_auto.sh: line 9: svnsync: command not
found
在svnsync前加上了路径,即“ /usr/local/bin/svnsync ”,解决。
问题3、
KF_031csevent
Failed to get lock on destination repos, currently held by
A5%E5%B7%A5%E5%85%B7svnsync%E5%87%BA%E9%94%99failed-to-get-lock-on-
destination-repos.html
删除SVN仓库修订号0 svn:sync-lock的保护.
[svnroot@scmserver sync69]$ svn propdel svn:sync-lock --revprop -r 0
property 'svn:sync-lock' deleted from repository revision 0
[svnroot@scmserver sync69]$ svnsync sync --再次同步已没有问题。
4、同步脚本中加上了对用户文件的备份
scp
/sync69/htpasswd69
password:
passwd 100% 10KB
后记:svnsync同步步骤:
1、建库
eg.
[svnroot@scmserver root]$ cd /sync69/
[svnroot@scmserver sync69]$ mkdir monitoring_dev
[svnroot@scmserver sync69]$ cd monitoring_dev/
[svnroot@scmserver monitoring_dev]$ svnadmin create .
2、修改hook
在目标库的hook 目录:项目名 目录下执行:
cp pre-revprop-change.tmpl pre-revprop-change
chmod a+x pre-revprop-change
vi pre-revprop-change
修改:exit 1 为 exit 0
最后为:
-rwxrwxr-x 1 svnroot svnroot 2786 Jun 17 15:11 pre-revprop-change
3、同步
注:
用户名与密码是访问源库的(原地址访问权限)
提示是否保存用户名密码,输入yes
4、设置库访问方式
DAV svn
SVNParentPath /sync69
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svnroot/apache/conf/htpasswd
Require valid-user
AuthzSVNAccessFile /sync69/authz
注:用户文件、权限文件也要准备好(权限文件因为路径问题,可能需要转换)
阅读(2629) | 评论(0) | 转发(0) |