如何使用pscp和plink做自动化部署,windows上bat脚本一键打包,传输,运行

安装pscp和plink

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

后台部署 - 打包上传并远程调用启动脚本

bat脚本

@echo off
rem 打印的中文不乱码,默认是gbk,改为utf8
chcp 65001
rem 拷贝的文件名称
set name=zhong-eureka
rem 拷贝文件完整路径
set folder=E:\git\zhong\%name%\target\%name%.jar
rem 服务器IP
set ip=192.168.1.107
rem 服务器密码
set password=123456
echo "打包.."
e:
cd E:\git\zhong\%name%
call mvn clean install -Dmaven.test.skip=true
echo "传输到linux服务器home目录下..."
pscp -pw %password% %folder% root@%ip%:/home/
echo "启动,远程调用linux服务器上的sh脚本..."
plink -batch -pw %password% root@%ip% /home/%name%.sh
@cmd.exe
exist

 

linux的sh脚本

#!/bin/sh
#该文件必须放在jar包的目录下,因为是以相对路径来运行的。不放jar包目录的话,可以直接在jar_name参数写绝对路径
#start 设置三个参数 
#环境
profile=
#jar的路径和名称
jar_name=/home/zhong-eureka.jar
#远程断点端口
remote_address=
#end 设置三个参数
echo "运行$jar_name"
#查询进程,并杀掉当前jar/java进程
pid=`ps -ef|grep $jar_name|grep -v grep|awk '{print $2}'`
echo "进程为$pid"
kill -9 $pid
echo "$pid进程终止成功"
sleep 2
source /etc/profile
#判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
if test -e $jar_name
then
echo "$jar_name存在,开始启动此程序..."
    # 判断是否有远程断点端口
    if test -z "$remote_address"
    then
      # 启动jar包
      nohup java -Xms64m -Xmx128m -jar $jar_name >/dev/null 2>&1 &
      echo "远程断点端口为空"
    else  
      # 启动jar包
      nohup java -Xms64m -Xmx128m -jar $jar_name >/dev/null 2>&1 &
      echo "远程断点端口为$remote_address"
    fi
echo "$jar_name 启动成功..."
pid=`ps -ef|grep $jar_name|grep -v grep|awk '{print $2}'`
echo "新进程为$pid"
else
echo "$jar_name 文件不存在,请检查。"
fi

 

---------------------------------------------------------------------

前端部署 - 打包并上传

@echo off
chcp 65001
rem 拷贝文件完整路径
set folder=E:\git\zhong-web\zhong-shop-owner\dist\

echo "打包.."
e:
cd E:\git\zhong-web\zhong-shop-owner\
call npm run build

echo "上传到服务器"
pscp -pw 123456 -r %folder% root@192.168.1.107:/home/project/

@cmd.exe
exist

 

posted @ 2019-12-26 10:03  suruozhong  阅读(2340)  评论(0编辑  收藏  举报