linux自动发布脚本(svn,maven,tomcat)
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!"