前提,可将线上的目录全部删除 ,从svn上先拉下来一份代码。 再进行shell自动更新代码
svn co svn://svn.xxxxxx.com/repos/web/ ./ --username xxxxx --password xxxxx
1、写定时每3秒钟去执行,svn up的代码
2、svn up的shell代码, 思路,拿到当前代码内版本号和svn info上的版本号,进行对比,小于svn info上的版本则。 svn up
crontab_up.sh
#!/bin/bash
#For excuting the scripts every 3 seconds in crond.
#20100124.WXG
for((i=1;i<=20;i++));do
/root/code_db/svn_up_web/update_controller.sh 2>/dev/null &
/root/code_db/svn_up_web/update_public.sh 2>/dev/null &
/root/code_db/svn_up_web/update_view.sh 2>/dev/null &
sleep 3
done
各种文件夹内更新
update_controller.sh
#!/bin/bash
revision=`svn info /usr/local/nginx/html/web/Application/Home/Controller |grep "Last Changed Rev:" |awk '{print $4}'`
echo "the revision is $revision"
#URL=`svn info /usr/local/nginx/html/web/Application/Home/Controller |grep URL: |awk '{print $2}'`
URL="svn://svn.xxxxxx.com/repos/web/Application/Home/Controller"
echo "the url is $URL"
#echo '-------'
svnRevision=`svn info $URL |grep "Last Changed Rev:" |awk '{print $4}'`
echo "the revision in svn is $svnRevision"
echo $revision
echo $svnRevision
if (( $revision < $svnRevision )) ; then
echo "need svn up"
svn up /usr/local/nginx/html/web/Application/Home/Controller
echo "svn up finish"
else
echo "no need svn up"
fi