服務器上必須安裝了git maven jdk 並且配置好環境變量
實際服務器中可能運行着多個Java進程,所以重新部署的時候需要先停止原來的java進程,寫一個按照名稱殺死進程的腳本
kill.sh
-
-
function PidFind()
-
-
{
-
-
PIDCOUNT=`ps -ef | grep $1 | grep -v "grep" | grep -v $0 | awk '{print $2}' | wc -l`;
-
-
if [ ${PIDCOUNT} -gt 1 ] ; then
-
-
echo "There are too many process contains name[$1]"
-
-
elif [ ${PIDCOUNT} -le 0 ] ; then
-
-
echo "No such process[$1]!"
-
-
else
-
-
PID=`ps -ef | grep $1 | grep -v "grep" | grep -v ".sh" | awk '{print $2}'` ;
-
-
echo "Find the PID of this progress!--- process:$1 PID=[${PID}] ";
-
-
echo "Kill the process $1 ...";
-
-
kill -9 ${PID};
-
-
echo "kill -9 ${PID} $1 done!";
-
-
fi
-
-
}
-
-
-
PidFind $1
-
-
exit 1
接着就是寫重新部署的腳本
redeploy.sh
-
#殺死原來的java進程
-
./kill.sh test.jar
-
#進入代碼文件夾,必須有git管理
-
cd code/test/
-
#更新代碼
-
git pull
-
#清理原來的jar包重新打包
-
mvn clean install -Dmaven.test.skip= true
-
cd ~
-
#刪除原來的jar包
-
rm -rf test-web.jar
-
cp code/ test/test-web/target/test-web.jar test-web.jar
-
#后台運行
-
nohup java -agentlib:jdwp=transport=dt_socket,address=8100,server=y, suspend=n -jar test-web.jar > /root/logs/test.log &
-
#監控日志
-
tail -f /root/logs/flm-material.log
上述的代碼路徑 和jar包存放位置根據實際情況修改