在linux写一个shell脚本用maven git自动更新代码并且打包部署

匿名 (未验证) 提交于 2019-12-02 21:56:30

服务器上必须安装了git maven jdk 并且配置好环境变量

实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本

kill.sh

  1. #!/bin/sh
  2. function PidFind()
  3. {
  4. PIDCOUNT=`ps -ef | grep $1 | grep -v "grep" | grep -v $0 | awk '{print $2}' | wc -l`;
  5. if [ ${PIDCOUNT} -gt 1 ] ; then
  6. echo "There are too many process contains name[$1]"
  7. elif [ ${PIDCOUNT} -le 0 ] ; then
  8. echo "No such process[$1]!"
  9. else
  10. PID=`ps -ef | grep $1 | grep -v "grep" | grep -v ".sh" | awk '{print $2}'` ;
  11. echo "Find the PID of this progress!--- process:$1 PID=[${PID}] ";
  12. echo "Kill the process $1 ...";
  13. kill -9 ${PID};
  14. echo "kill -9 ${PID} $1 done!";
  15. fi
  16. }
  17. PidFind $1
  18. exit 1

接着就是写重新部署的脚本

redeploy.sh

  1. #杀死原来的java进程
  2. ./kill.sh test.jar
  3. #进入代码文件夹,必须有git管理
  4. cd code/test/
  5. #更新代码
  6. git pull
  7. #清理原来的jar包重新打包
  8. mvn clean install -Dmaven.test.skip=true
  9. cd ~
  10. #删除原来的jar包
  11. rm -rf test-web.jar
  12. cp code/test/test-web/target/test-web.jar test-web.jar
  13. #后台运行
  14. nohup java -agentlib:jdwp=transport=dt_socket,address=8100,server=y,suspend=n -jar test-web.jar > /root/logs/test.log &
  15. #监控日志
  16. tail -f /root/logs/flm-material.log

上述的代码路径 和jar包存放位置根据实际情况修改

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!