標籤:完全 gpo else clean $nf echo targe 開發 roo
公司項目使用了SpringBoot。開發的應用需要自動上傳到伺服器。雖然目前對熱部署還沒完全掌握。先使用shell簡化一下部署吧。
# 上傳密鑰sshLoginKey=/f/MyFile/root.key# 項目在原生目錄MyProject=/d/MyProject/comment# 遠程主機上的路徑RemoteHost=[email protected]RemotePath=$RemoteHost:/data/if [ -f "$sshLoginKey" -a -d "$MyProject" ];then cd $MyProject # 只輸出錯誤 mvn clean package -q # 尋找target目錄中,最近1分鐘內打包的檔案,與檔案名稱解耦,更加通用 fileName=$(find target -size +15M -type f -cmin -1) if [ -e "$fileName" ];then echo "打包成功" scp -P 2233 -i $sshLoginKey $fileName $RemotePath; if [ $? -eq 0 ];then echo "上傳成功。"; # 停止服務 ssh -p 2233 $RemoteHost -i $sshLoginKey "ps -ef | awk ‘\$NF~/comment/{print \$2}‘ | xargs kill -9 " # 啟動服務 # ssh -p 2233 $RemoteHost -i $sshLoginKey "/root/jdk1.8.0_152/bin/java -jar /data/comment.jar 2>&1 >/var/log/comments.log &" else echo "上傳失敗。"; fi else echo "打包失敗" exit 1 fi if [ -f "$fileName" ];then rm -rf $fileName fielse echo "密鑰或項目不存在"; sleep 5s;fi
Shell指令碼 自動部署 SpringBoot 應用