用crontab每天用svnsync同步库
时间:2010-07-20 来源:echo_shu
1、脚本名:sync_auto.sh
内容如下:
#!/bin/bash
#sync from XXX to file:///sync69
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 file:///sync69/$module
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 'scmserver:28fa4c84-6bb2-45fc
......
svnsync: Couldn't get lock on destination repos after 10 attempts
搜索到解决办法:http://blog.zxlm.cn/2009/02/subversion%E5%90%8C%E6%AD% 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 file:///sync69/KF_031csevent/
property 'svn:sync-lock' deleted from repository revision 0
[svnroot@scmserver sync69]$ svnsync sync file:///sync69/KF_031csevent --再次同步已没有问题。 4、同步脚本中加上了对用户文件的备份 scp svnroot@源IP:/home/svnroot/repositories/projects/conf/passwd /sync69/htpasswd69
svnroot@源IP 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 目录:file:///sync69//项目名 目录下执行:
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、同步 svnsync init file:///sync69/monitoring_dev svn://源IP/monitoring_dev
svnsync sync file:///sync69/monitoring_dev 注: 用户名与密码是访问源库的(原地址访问权限) 提示是否保存用户名密码,输入yes 4、设置库访问方式 <Location /sync69>
DAV svn
SVNParentPath /sync69
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svnroot/apache/conf/htpasswd
Require valid-user
AuthzSVNAccessFile /sync69/authz
</Location> 注:用户文件、权限文件也要准备好(权限文件因为路径问题,可能需要转换)
#sync from XXX to file:///sync69
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 file:///sync69/$module
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 'scmserver:28fa4c84-6bb2-45fc
......
svnsync: Couldn't get lock on destination repos after 10 attempts
搜索到解决办法:http://blog.zxlm.cn/2009/02/subversion%E5%90%8C%E6%AD% 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 file:///sync69/KF_031csevent/
property 'svn:sync-lock' deleted from repository revision 0
[svnroot@scmserver sync69]$ svnsync sync file:///sync69/KF_031csevent --再次同步已没有问题。 4、同步脚本中加上了对用户文件的备份 scp svnroot@源IP:/home/svnroot/repositories/projects/conf/passwd /sync69/htpasswd69
svnroot@源IP 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 目录:file:///sync69//项目名 目录下执行:
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、同步 svnsync init file:///sync69/monitoring_dev svn://源IP/monitoring_dev
svnsync sync file:///sync69/monitoring_dev 注: 用户名与密码是访问源库的(原地址访问权限) 提示是否保存用户名密码,输入yes 4、设置库访问方式 <Location /sync69>
DAV svn
SVNParentPath /sync69
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svnroot/apache/conf/htpasswd
Require valid-user
AuthzSVNAccessFile /sync69/authz
</Location> 注:用户文件、权限文件也要准备好(权限文件因为路径问题,可能需要转换)
相关阅读 更多 +