安裝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