如何使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM