对于部门不健全的公司,项目上线后,往往得开发者自己监控项目运行状况,这时候就需要写简单的脚本监控运行状况
监控进程脚本如下
#!/bin/bash
while [ true ]
do
tdate=`date '+%Y-%m-%d %H:%M:%S'`
#grep -v grep 表示只输出目标进程,而不包过grep进程本身
process=$(ps -ef | grep "task-spark-streaming.jar"|grep -v grep)
#判断上一步输出的进程是否为零,为零表示进程已死 -z表示是否等零
if [ -z "$process" ]
then
echo "$tdate 程序意外终止,重新启动程序" >> monitor/exlog.log
#程序意外开挂,短信通知相关人员
curl "http://120.31.5.215/taskapp/monitor/sms?phone=18215031745&content=task-spark-streaming"
#执行写好的邮件脚本,邮件通知,pl脚本之前博客介绍过
pl sendEmail.pl
#重新启动
nohup spark2-submit --class com.nlp.streaming.action.TaskSparkAction --master yarn --deploy-mode client --executor-memory 5G --conf spark.executor.extraJavaOptions="-DLog4j.configuration=log4j.properties" task-spark-streaming.jar &
else
echo "$tdate 程序正在运行..." >> monitor/exlog.log
fi
#每隔三秒检测一次
sleep 3
done