#!/bin/bash
export LANG=zh_CN.UTF-8
for val in `svnlook changed /data0/svndata/ | awk '{print $2}' | awk -F "/" '{print $1}'| sort | uniq -c | awk '{print $2}'`
do
echo "更新时间:`date`,更新项目:$val">>/tmp/svn.log
if [ $val == "abc" ]; then 如果有特殊的项目不在同一配置目录下,可做判断
#本项目只有两台机器需要同步
su www --command "/usr/local/bin/svn up /data0/.../game"
/usr/bin/ssh www@IP "cd /data0/.../game;export LC_CTYPE=en_US.UTF-8 && svn up"
else
su www --command "/usr/local/bin/svn up /data0/htdocs/$val"
/usr/bin/ssh www@IP "cd /data0/htdocs/$val;export LC_CTYPE=en_US.UTF-8 && svn up"
fi
done
#新方案
#新方案说明;
#通过svnlook changed 来获取已经触发更新的项目路径,通过正则匹配处理无用输出,awk根据判断是否是专题活动更新,来处理输出项目路径(专题活动下有子分类,所以需要区别处理)
#得到项目路径来判断是否包含zt.xoyo.com,分别进行更新项目
#添加时间:zhaolilei--20120525
for notify in `svnlook changed /data0/svndata/ |sed 's/.*publish\///g' |awk -F "/" '{if($1=="zt.*.com"){print $1"/"$2"/"$3}else{print $1}}' |sort |uniq -c |awk '{print $2}'`
do
echo "要更新的目录为:$notify"
#判断变量里是否包含zt.*.com,如果不包含,说明要更新的项目不需要同步到222线上活动测试机(非专题活动测试在205上进行)
num=`echo $notify | grep zt.*.com | grep -v "grep" | wc -l`
if [ $num -eq 0 ]; then
su www --command "svn up /data0/htdocs/$notify"
else
su www --command "svn up /data0/htdocs/$notify"
#/usr/bin/ssh www@10.*.*.222 "cd /data0/htdocs/$notify;export LC_CTYPE=en_US.UTF-8 && svn up"
/usr/bin/ssh www@10.*.*.222 "export LC_CTYPE=en_US.UTF-8;svn up /data0/htdocs/$notify"
fi
done
svn 同步脚本--添加在post-commit
最新推荐文章于 2023-12-21 12:05:16 发布