博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows下自动上传war到Linux服务器,自动部署,自动重启Tomcat的系列脚本
阅读量:6212 次
发布时间:2019-06-21

本文共 2482 字,大约阅读时间需要 8 分钟。

hot3.png

windows下自动上传 war 到 Linux 服务器

  • 下面的 cmd 脚本通过 Maven 命令执行打包,生成 war
  • 通过 pscp 将 war 上传到服务器
  • 通过 plink 远程调用 Linux 上的 shell 脚本
  • 其中 pscp 来自 PUTTY
  • putty_privatekey 用于 plink 无密码登录 Linux,也可以通过用户名和密码的方式
  • 其中 test-web-deploy.sh 用于自动部署 war
@echo offset project_path=D:\svn-workspace\test-webset local_file=%project_path%\target\test-web.warset putty_privatekey=D:\soft\keys\test-privatekey.ppkset deploy-shell=test-web-deploy.sh set server_user_1=devset server_passwd_1=123set server_ip_1=10.32.22.61 set server_path=/usr/local/appsecho ---------------------------------------------- execute mvn clean installD:cd %project_path%call mvn clean install -Dmaven.test.skip=true -Ptest echo ---------------------------------------------- upload war file to server call pscp -l %server_user_1% -pw %server_passwd_1% -r %local_file% %server_ip_1%:%server_path%echo ---------------------------------------------- execute %deploy-shell%call plink -i %putty_privatekey% %server_user_1%@%server_ip_1% sh %deploy-shell% pause

Linux 自动部署 war

  • 在下面的脚本是 test-web-deploy.sh,会调用 tomcat_restart.sh,用于重启 Tomcat
#!/bin/bashapp_name=test-webapp_path=/usr/local/appstomcat_path=/usr/local/soft/tomcat-test-webcd $app_pathif [ -f ${app_name}.war ];then    echo find ${app_name}.war, unpack the file then restart the tomcat    rm -rvf ./${app_name}/*    mv ./${app_name}.war $app_path/${app_name}/    cd $app_path/${app_name}    jar -xvf ${app_name}.war    rm -rvf ${app_name}.war  else    echo not find ${app_name}.war, only restart the tomcatficd $tomcat_pathsh tomcat_restart.sh

自动重启 Tomcat

  • 下面的脚本是 tomcat_restart.sh,基本思路是通过 Tomcat 安装路径找到进程pid,杀死后再重启
#!/bin/bash# 首先找到tomcat根目录, 确保当前脚本在tomcat根目录下tomcat_path=/usr/local/soft/tomcat-test-webecho tomcat path is $tomcat_path# 找到tomcat的进程idtomcat_pid=$(ps -ef|grep $tomcat_path|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')if [ "$tomcat_pid" ];then  echo tomcat process id is $tomcat_pid  # 杀掉tomcat进程  if    kill -9 $tomcat_pid  then    echo kill tomcat process success  else   echo kill tomcat process fail  fielse  echo tomcat is already deadfi# 启动tomcat并重定向到日志输出sh $tomcat_path/bin/startup.shtail -f $tomcat_path/logs/catalina.out

可能遇到的问题

执行 jar -xvf xxx.war 的时候提示:/bin/bash: jar: command not found

解决如下

cd /usr/binsudo ln -s -f /usr/lib/jvm/jdk1.6.0_30/bin/jar

jdk安装目录按自己实际情况更改

如果提示javah:commond not found,于是照葫芦画瓢,输入命令

cd /usr/binln -s -f /usr/lib/jvm/jdk1.6.0_30/bin/javah

总结

  • 该系列脚本解决了自动部署问题,非常适用于敏捷开发
  • 基于该系列脚本可以实现自动发布系统的开发 :)

转载于:https://my.oschina.net/bbsyuemoncn/blog/809220

你可能感兴趣的文章
AngularJs过滤器
查看>>
苏格拉底的名言警句
查看>>
在Excel中插入Flash及解决不能自动播放问题
查看>>
为Dreamweaver写的扩展—jQuery自动提示.
查看>>
BZOJ3786: 星系探索 Splay+DFS序
查看>>
【C#】datetimepicker初始为空值的方法
查看>>
计算机专业的一个四年工作的总结
查看>>
ANT的安装和配置(windows)
查看>>
(转载)Windows 7 Ultimate(旗舰版)SP1 32/64位官方原版下载(2011年5月12日更新版)...
查看>>
django MVC模式 数据库的操作mysql
查看>>
创建私有maven服务器
查看>>
JVM垃圾回收算法
查看>>
[ 转]Collections.unmodifiableList方法的使用与场景
查看>>
C#操作INI
查看>>
Redis 配置文件
查看>>
编程语言和它们的创造者
查看>>
交叉熵损失函数
查看>>
np.linespace使用方法
查看>>
UnicodeDecodeError gbk codec can't decode byte in position illegal multibyte sequence
查看>>
uoj#279. 【UTR #2】题目交流通道(容斥+数数)
查看>>