shell脚本实例-实现自动发布到不同的环境

#!/bin/bash

#publish80.sh dev make 

#publish80.sh uat make 

#publish80.sh dev_uat

 

if [ $# -ne 1 -a $# -ne 2 ]; then

    echo " this shell need a param like dev uat dev_uat & make ..."

exit -1

fi

 

 

if [ $# -eq 2 ]; then

 

    make=$2

 

if [ "$make"x = "make"x ]; then

 

tmpx=`date +%Y%m%d%H%M%S`

 

fileName="workapp-"$tmpx".bak"

 

cp -r ../workapp ../bak/$fileName

 

svn update $APPHOME/src/

svn update $APPHOME/etc/

svn update $APPHOME/sbin/

 

#svn update $APPHOME/java/

 

make -f $APPHOME/src/batch.mak clean all

 

rm -rf ./workapp.tar.gz

 

cp -r ../workapp ./

 

      tar -zcvf workapp.tar.gz workapp  --exclude workapp/.svn --exclude workapp/temp --exclude workapp/java --exclude workapp/etc  --exclude workapp/sbin  --exclude workapp/log

 

#tar -zcvf workapp.tar.gz workapp  --exclude workapp/.svn --exclude workapp/temp --exclude workapp/java   --exclude workapp/log

rm -rf ./workapp

     else

echo "the second param of this shell should be make..."

exit -1

fi

    

fi  

 

 

 

env=$1

 

if [ "$env"x = "dev"x ]; then

 

echo -e "send workapp.tar.gz to dev....\n"

./scpFile.sh /app/workapp.tar.gz dev@10.10.10.10:/app/dev/

 

fi

 

 

 

if [ "$env"x = "uat"x ]; then

 

    echo -e "send workapp.tar.gz to uat.....\n"

./scpFile.sh /app/workapp.tar.gz uat@10.10.10.11:/app/uat/

 

fi

 

 

 

 

if [ "$env"x = "dev_uat"x ]; then

    echo -e "send workapp.tar.gz to dev_uat...\n"

./scpFile.sh /app/workapp.tar.gz dev@10.10.10.10:/app/dev/

./scpFile.sh /app/workapp.tar.gz uat@10.10.10.11:/app/uat/

fi