基于Shell脚本的Linux下Javaweb项目一键部署

刚买到服务器的时候想把项目部署上去时,经常会用到各种scp、unzip之类一大堆的命令。虽然整个流程不是特别麻烦,不过学了一些Shell的命令知识之后我发现这个过程还是有优化的空间,于是大概花了几个小时完成了这样一个自动部署的脚本。

首先要解决的问题是,命令如何在远程服务器上运行,因为之前每次我都是用密码登录的,所以这个问题不解决后面的流程也就无从谈起,因此我使用了Linux下的一个expect命令,这个命令基本上就相当于是帮你自动往控制台中送输入的,于是将这个命令先封装成一个sh脚本executeCmd.sh。

#!/usr/bin/expect -f
#用途:远程执行一条任务
set user [lindex $argv 0]    #用户名
set host [lindex $argv 1]    #服务器地址
set password [lindex $argv 2]    #服务器密码
set cmd [lindex $argv 3]    #命令

spawn ssh $user@$host $cmd
#spawn $cmd
set timeout 300
expect "$user@$host's password:"
set timeout 300		
send "$password\r"
set timeout 300	
send "exit\r"
expect eof

如图,基本上就是先向服务器发送命令,然后等待一段时间自动输入密码参数,再等一段时间之后退出。

实现远程命令的执行之后,就可以编写主要逻辑了,基本上的思路就是

  1. 停止目标服务器的tomcat工作
  2. 复制war文件到服务器对应目录下
  3. 递归删除同名文件夹
  4. 解压缩xxx.war
  5. <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值