优化shell脚本提高svn提交速度
写给自己看的,方便查询Svn服务器:10.6.0.2Svn客户端:10.6.0.6 从前的勾子文件,每提交一次都会触发下面六条代码进行更新,只有当这些代码执行完后提交才会成功,同时更新这六条代码是很慢的,这样就导致每次提交文件非常慢。vim post-commit#sshpass -p 123456 ssh root@10.6.0.6 "cd /opt/data/mfs/folder2/htdocs/test&&svn update"#sshpass -p 123456 ssh root@10.6.0.6 "cd /opt/data/mfs/folder2/htdocs/resource&&svn update"#sshpass -p 123456 ssh root@10.6.0.6 "cd /opt/data/mfs/folder2/htdocs/test_rl&&svn update"#sshpass -p 123456 ssh root@10.6.0.6 "cd /opt/data/mfs/folder2/htdocs/test_rl/language&&svn update"#sshpass -p 123456 ssh root@10.6.0.6 "cd /opt/data/mfs/folder2/htdocs/test_rl/resource&&svn update"#sshpass -p 123456 ssh root@10.6.0.6 "cd /opt/data/mfs/folder2/htdocs/test_rl/template&&svn update" 下面通过脚本来优化提交速度。我们提交一个文件后,先在10.6.0.2上通过svnlook dirs-changed命令可以得到每次提交的文件路径。如:#svnlook dirs-changed /data/svn_files/yx/share/resource_template_language/resource/common_info/images/再回到10.6.0.6上通过svn info命令可以得到每个检出目录所对应的svn服务器目录路径。# pwd/opt/data/mfs/folder2/htdocs/test_rl/resource/common_info/images# svn info路径: .URL: svn://10.6.0.2/yx/share/resource_template_language/resource/common_info/images 写一个脚本,自动判断每次提交到svn服务器(10.6.0.2)的文件的路径,然后根据路径来定向更新到客户端(10.6.0.6)指定的文件夹。而不是更新所有客户端检出的文件夹。这样由于更新范围被缩小,所以更新速度就得到大大的提高。#!/bin/bashsvndir1=/opt/data/mfs/folder2/htdocssvndir2=/opt/data/mfs/folder2/htdocs/test_rl for i in `cat changed.log` do dir1=`echo "$i" |awk -F/ '{print $1}'` dir2=`echo "$i" |awk -F/ '{print $2}'` dir3=`echo "$i" |awk -F/ '{print $3}'`#更新resource if [ "$dir1/$dir3" = 'web?\229?\137?\141?\231?\171?\175?\229?\188?\128?\229?\143?\145/resource' ];then svndir3=`echo $i |grep -Po '(?
页:
[1]