Publish over SSH介紹
Jenkins發佈插件,支持通過ssh將文件發送至遠端服務器,在遠端服務器執行命令,可在maven構建前,構建後執行.
全局配置
位置:Dashboard-configuration-Publish over SSH-SSH Servers
配置遠端服務器,支持多個服務器
SSH Server:配置服務器別名,ip,用戶名密碼等信息,
Remote Directory:遠端工作目錄,拷貝文件會以此目錄爲工作空間根目錄
項目配置
位置:Build新增Send files or execute commands over SSH,增加在maven構建之後.
SSH Server-Name:全局配置中配置的遠端服務器
點擊又下角"Advanced"按鈕勾選"Verbose output in console"可將命令執行結果返回至Jenkins便於調試
Source files:需要發送到遠端的文件,相對路徑,基於當前項目的工作空間
Remove prefix:拷貝至遠端需刪除的前綴
Remote directory:相對路徑遠端服務存儲的文件目錄,基於全局配置中的Remote Directory
Exec command:傳輸完成之後執行的命令,可進行文件備份,服務重啓等操作
下面的命令是備份文件,重啓服務,重啓服務的腳本在服務器上,如有需要也可以在此處完成.
#!/bin/bash baseDir="/home/workspace/xxxProject/" deployDir=$baseDir"lib/" historyDir=$baseDir"history/" binDir=$baseDir"bin/" jarName="xxxProject.jar" jarName_prefix="xxxProject" jarName_suffix=".jar" dateStr=`date +%s` echo $dateStr copyFileName=$jarName_prefix$dateStr$jarName_suffix echo $copyFileName cp -i $deployDir$jarName $historyDir$copyFileName echo "Backup complete" mv -f $historyDir$jarName $deployDir$jarName cd $binDir ./xxxProject restart