生产
介绍
说明
进程监控采用
进程:shell scr
集成:Jenkins
打包:Jar
Jenkins
Jenkins 是一个
流程
Jenkins新建一个需持续集成的项目,然后
注:Install Jenkins的过程暂不在本篇介绍,若有
1. Jenkins shell脚本
示例
PROJECT=online_store
MOD=cms
PORT=9065
IP=xxx
xxx:根据需要传该
yyy:这个IP务必是deploy-production.sh
脚本所在的服务器,至关重要,影响着打包及进程监控,可理解为Jenkins持续集成到Linux服务器的入口
2. Linux服务器执行的初始脚本
注:初始脚本,言下之意是Jenkins与Linux服务器交互的第一个脚本,其余操作包括监控都与初始脚本息息相关。
由于脚本涉及部分隐私,故不全贴出来,仅贴关键部分。
接收参数
PROJECT=$1
JOB=$2
MOD=$3
PORT=$4
IP=$5
复制代码
主要流程代码根据项目
nohup /usr/bin/
监控代码执行
sh ~/monitor_exec.sh $PROJECT $JOB $MOD $PORT
复制代码
即执行monitor_exec.sh
脚本。
3. 监控脚本的初始脚本
作用:将监控脚本写入定时器。
关键代码:
#!/bin/sh
PROJECT=$1
JOB=$2
MOD=$3
PORT=$4
mkdir -p ~/cron/
touch ~/cron/$PROJECT.cron
file=~/cron/$PROJECT.cron
echo 'cron path:'$file;
if test -s $file; then
echo "cron文件内容不为空";
else
echo "* * * * * sh /root/monitor.sh $PORT $PROJECT $MOD $JOB" >> ~/cron/$PROJECT.cron
cron
解析:中间echo的cron path路径,会输出到Jenkins日志里。目的是将执行monitor.sh
写入服务器定时任务。cron规则就不介绍了,自定义即可。
说明:监控脚本的执行过程,应该加上日志输出(示例比较简单,勿模仿),这是好习惯,以便做记录!
4. 监控脚本
关键代码:
#!/bin/sh
PID=`/usr/sbin/lsof -i:$1 |
解析:Jar包会运行于服务器的一个
拓展部分:集成
背景:进程被kill,若是
关键代码:
echo '钉钉通知开始' >> ~/log/$PROJECT.log
curl '
说明:
xxx
:填上对应钉钉机器人的access_token即可。