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