自動化部署腳本(windows上傳到linux)

先介紹兩個工具,PUTTY和WINSCP。linux

 

  PUTTY是一個不經常使用的,能夠在windows平臺經過ssh鏈接到linux的工具。好處是這個工具特別小,免安裝。但是功能不強(語法高亮這點就夠了)。因此並不經常使用。(經常使用的是secureCRT &xshell)然而,putty在windows平臺能夠經過命令行的形式執行。通常putty會做爲腳本工具使用的。git

 

  WINSCP是一個windows平臺下,經過ssh協議複製東西到linux服務器的工具。也支持命令行的形式。web

 

  腳本邏輯是這樣的:shell

  • 打包
  • 打包結果上傳到服務器
  • 服務器處理(部署、重啓服務器)

 

一、打包。windows

例如maven打包,並且打包後不自動退出。(文件後綴是bat)tomcat

call mvn clean package -U -Dmaven.test.skip=true

 

二、上傳到服務器。服務器

用winscp,執行腳本。參考以下:app

--打開控制檯
WinSCP.exe /script="E:\eclipse_mars_workspace\singleBbs\autoUpdate\updateLoadScript.sh"

uploadLoadScript的內容參考:eclipse

--鏈接服務器,上傳文件
open sftp://account:password@ip:port
put E:\eclipse_mars_workspace\singleBbs\target\singleBbs.war
exit

put一個文件到用戶下的根目錄ssh

 

三、服務器上處理(替換、重啓)

在bat腳本中,經過putty登陸,而且執行服務器腳本

PUTTY.EXE -ssh -pw password account@ip -m serverScript.sh

 

關閉tomcat,部署,啓動tomcat。

複製代碼

/root/tomcat7/tomcat7/bin/catalina.sh stop
sleep 1
rm /root/tomcat7/tomcat7/webapps/singleBbs.war
rm -r /root/tomcat7/tomcat7/webapps/singleBbs
cp ~/singleBbs.war /root/tomcat7/tomcat7/webapps/singleBbs.war
/root/tomcat7/tomcat7/bin/catalina.sh start
sleep 1
rm ~/singleBbs.war
exit

複製代碼

 

 

後記

  一開始考我是慮用git的鉤子實現。大概邏輯是:提交代碼到git,git打標籤的時候觸發鉤子從而打包、部署

  這樣子作壞處是服務器要安裝gitlab(鉤子嘛),maven。好處是有版本策略能夠跟蹤代碼部署的狀況。其實,不少大廠都是這樣方式實現的。不過做爲我的開發、研發環境,仍是經過複製的方式部署更輕量。

相關文章
相關標籤/搜索