前言
本来一直使用
jenkins
后来坏掉了,别问,问就是老板的朋友做运维,对这块不太清楚,说jenkins
自动更新了然后导致,jenkins
数据重置了,但是我是没有找到有关于这方面的问题,应该是甩锅吧…
说明
- 由于
jenkins
坏了,那我们还是springcloud项目,分包还多,还没测试环境,只能本地测试,本地测试,得起好多个项目…,正好可以使用一下Alibaba Cloud Toolkit
插件
使用
安装插件
- IDEA 安装
Alibaba Cloud Toolkit
这个插件
配置服务
- 可以通过左下角的
AlibabaCloudView
打开添加视图
- 也可以通过Tools–>Alibaba Cloud–> … 的方式打开视图
添加服务
- 添加服务图解
配置打包上传等内容
- 打开窗口
配置自动化
- 选择一个服务器
- 配置要把文件上传到那个目录
- 文件上传之后执行的命令
- 配置maven打包命令等
配置命令
配置文件上传前执行的命令
- 配置文件上传前的一些命令,例如:关闭服务,备份服务…
远程发布
- 配置完成后,像启动项目一样简单…
查看是否成功
注意
- IDEA 版本不同,可以操作界面不同,但是内容是大致相同的…
脚本
- 在复制脚本的时候需要注意
package_name
这个地方,包名称,自己填写
#/bin/bash
# 命令执行返回不为0就退出
set -e
# 导入java环境
source /etc/profile
user=$(whoami)
package_name="打包的名称"
# 启动参数,可以为空
#start_parameter=""
start_parameter="-Xms256m -Xmx512m"
SERVER_PORT="6013"
processid=$(ps axo pid,cmd | grep "${package_name}.jar" | grep "${SERVER_PORT}" | grep -v grep | awk '{print $1}')
function status() {
processnum=$(ps axo pid,cmd | grep "${package_name}.jar" | grep "${SERVER_PORT}" | grep -v grep | wc -l)
if [ ${processnum} -eq 1 ]; then
echo "程序已运行,pid为${processid}"
else
echo "程序未运行"
fi
}
function start() {
processnum=$(ps axo pid,cmd | grep "${package_name}.jar" | grep "${SERVER_PORT}" | grep -v grep | wc -l)
if [ ${processnum} -eq 1 ]; then
echo "程序已运行,pid为${processid}"
exit 1
fi
# 190610添加用户判断
if [ "${user}" == "tomcat" ]; then
nohup java ${start_parameter} -jar -Dserver.port=${SERVER_PORT} ${package_name}.jar >> ${package_name}.log 2>&1 &
elif [ "${user}" == "root" ]; then
su -c "nohup java ${start_parameter} -jar -Dserver.port=${SERVER_PORT} ${package_name}.jar >> ${package_name}.log 2>&1 &" tomcat
else
echo "请使用 tomcat 用户运行程序"
exit 1
fi
}
function stop() {
if [ -n "${processid}" ]; then
kill ${processid}
fi
}
function restart() {
stop
sleep 1
start
}
case $1 in
status)
status
;;
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo 'server.sh (status|start|stop|restart)'
;;
esac