# 远程服务器
在系统管理-->系统配置中,最靠下的地方找到Publish over SSH,添加对应的内容信息。如果是用密码登录,要添加的信息有
~~~
Passphrase: 远程服务器登录密码
SSH Servers可以添加多个,各个字段含义
Name:服务器的标识,随便起个名字方便记忆
Hostname:远程服务器IP地址
Username:远程服务器登录用户名,比如root
Remote Directory:远程服务器的目录,后续操作目录都是基于这个目录前缀
~~~
# 配置
其他配置和《部署SpringBoot项目》的基本一致,只有“Post Steps”和“构建后操作”有差别。
## Post Steps
项目构建完成后,可以在这里打印个内容,或者给文件换个目录、修改个名字之类的,也可以什么都不操作。
勾选 Run only if build succeeds or is unstable
内容样例
~~~
#!/bin/sh -l
echo "已经生成了,开始重命名文件"
mv -f /var/lib/jenkins/workspace/testproject/target/testproject-0.0.1-SNAPSHOT.jar /var/lib/jenkins/workspace/testproject/target/testproject.jar
~~~
## 构建后操作
选择Send build artifacts over SSH,各个字段填写:
~~~
Name:选择第一步对应的远程服务器名称
Source files:本地文件和所在目录,如 target/testproject.jar
Remove prefix:Source files的目录,如target/
Remote directory:基于远程服务器目录前缀的下级目录,如 mytest
Exec command:远程服务器上执行的shell,如nohup sh /xxx/xxx/xx/test.sh & sleep 1
点击高级,需要填写的内容有
Pattern separator:保留默认值 [, ]+
Exec timeout (ms):超时时间,传输文件时间较长可以修改如1200000
Exec in pty:需要勾选上
~~~
# 远程服务器脚本
对应上面的目录和文件,/xxx/xxx/xx/test.sh,内容为
~~~
#!/bin/bash
source /etc/profile
cd /xxx/xxx/xxxx/xxxx
echo "Stopping Application xxxx"
pid=`ps -ef | grep testproject.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
cd /xxx/xxx/xxxx/xxxx
BUILD_ID=dontKillMe nohup java -jar /xxx/xxxx/xxx/testproject.jar &
~~~