linux自动发布脚本(svn,maven,tomcat)

2025-10-29 01:48:34

1、设置执行保护

#!/bin/bash

ENV="0"

echo -n "Confirm to deploy ? [yes|no]"

read ANS

case $ANS in

    yes)

        ENV="1"

        ;;

    n|N|no|No)

        #exit 0

        ENV="2"

        ;;

esac

if [ "$ENV" == "0" ];then

echo "exit"

exit 0

fi

if [ "$ENV" == "2" ];then

echo "exit"

exit 0

fi

2、定义变量并清空文件夹

deployPath="/opt/test/{projuectName}"

tomcatPath="/usr/local/tomcat"

logFile="d.log"

projectName="{projuectName}"

echo "1/5 chear the deploy path $deployPath ..."

rm -rf $deployPath/*

rm -rf $deployPath/.classpath

rm -rf $deployPath/.svn

rm -rf $deployPath/.project

rm -rf $deployPath/.settings

3、svn checkout代码

echo "2/5 check out code ..."

svn co {SVNURL} $deployPath --username {SVNUSERNAME} --password {SVNPASSWORD} > $logFile

find $deployPath/. -type d -name ".svn"|xargs rm -rf

cd $deployPath

4、mvn编译

echo "3/5 mvn build ..."

mvn clean > $logFile

mvn package > $logFile

if (( $? )) 

then 

    echo "mvn build Failed!" 

else 

    echo "mvn build Success!"

fi

5、发布到tomcat下,此处可以自行选择是否需要自动发布到tomcat下

echo "4/5 deploy into tomcat ..."

$tomcatPath/bin/shutdown.sh > $logFile

rm -rf $tomcatPath/webapps/$projectName/ 

mv $deployPath/target/{projuectName}.war $tomcatPath/webapps/$projectName.war

$tomcatPath/bin/startup.sh > > $logFile

#rm -rf $zipReadyPath/$projectName.zip

#zip -r $tomcatPath/webapps/$projectName.zip . -i $tomcatPath/webapps/$projectName

#mv $tomcatPath/webapps/$projectName.zip $zipReadyPath/$projectName.zip

echo "5/5 complete!"

6、以下是整体shell脚本

#!/bin/bash

ENV="0"

echo -n "Confirm to deploy ? [yes|no]"

read ANS

case $ANS in

    yes)

        ENV="1"

        ;;

    n|N|no|No)

        #exit 0

        ENV="2"

        ;;

esac

if [ "$ENV" == "0" ];then

echo "exit"

exit 0

fi

if [ "$ENV" == "2" ];then

echo "exit"

exit 0

fi

deployPath="/opt/test/XXXXXX"

tomcatPath="/usr/local/tomcat"

logFile="d.log"

projectName="XXXXX"

echo "1/5 chear the deploy path $deployPath ..."

rm -rf $deployPath/*

rm -rf $deployPath/.classpath

rm -rf $deployPath/.svn

rm -rf $deployPath/.project

rm -rf $deployPath/.settings

echo "2/5 check out code ..."

svn co {SVNURL} $deployPath --username {SVNUSERNAME} --password {SVNPASSWORD} > $logFile

find $deployPath/. -type d -name ".svn"|xargs rm -rf

cd $deployPath

echo "3/5 mvn build ..."

mvn clean > $logFile

mvn package > $logFile

if (( $? )) 

then 

    echo "mvn build Failed!" 

else 

    echo "mvn build Success!"

fi

echo "4/5 deploy into tomcat ..."

$tomcatPath/bin/shutdown.sh > $logFile

rm -rf $tomcatPath/webapps/$projectName/ 

mv $deployPath/target/{projuectName}.war $tomcatPath/webapps/$projectName.war

$tomcatPath/bin/startup.sh > > $logFile

#rm -rf $zipReadyPath/$projectName.zip

#zip -r $tomcatPath/webapps/$projectName.zip . -i $tomcatPath/webapps/$projectName

#mv $tomcatPath/webapps/$projectName.zip $zipReadyPath/$projectName.zip

echo "5/5 complete!"

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢