shell监控进程状态,自启动

shell 监控脚本,通过会while true 实现,没有使用crontab

#!/bin/bash
source /etc/profile

appname=aurora-gateway-provider-1.3.1_build2.jar    #【jps 显示的 进程名称】
app_path=/opt/workspace/aurora-gateway/ #【app_script 的上层目录,和启动方式配合,如 aurora-gateway的启动方式是 sh sbin/app.sh start】
app_script=app.sh #【启动脚本】

        # 如下内容不需要修改
        function monitor() {
                monitorOutputLog=/data/aurora-gateway/logs/monitor/$(date ‘+%Y%m%d‘).log
                if [ ! -f "$monitorOutputLog" ];then
                                touch "$monitorOutputLog"
                        fi

                pid=$(jps |awk -v var=$appname ‘{if($2 ~ var)print$1}‘) #awk -v 表示将shell中的变量appname引入 awk表达式;{if($2 ~ var)print$1}判断是不是相似,相似打印pid
                if (kill -0 $pid 2>/dev/null);then # kill -0 $pid:检查pid进程是否存在,echo $? 存在则返回0;不存在返回1; 2>/dev/null:表示不输出错误信息
                echo "$(date ‘+%Y-%m-%d %H:%M:%S‘)      $appname is running" >> $monitorOutputLog
                sleep 15 #sleep 15秒
                else
                        cd $app_path && sh sbin/$app_script start
                        pid=$(jps |awk -v var=$appname ‘{if($2 ~ var)print$1}‘)
                        if (kill -0 $pid 2>/dev/null);then
                        echo "$(date ‘+%Y-%m-%d %H:%M:%S‘)      $appname 启动成功" >> $monitorOutputLog
                        sleep 15
                        else
                        echo "$(date ‘+%Y-%m-%d %H:%M:%S‘)      $appname 启动失败" >> $monitorOutputLog
                        sleep 15
                        fi
                fi
        }

while true
do
monitor
done

# 使用步骤:
# [root] mkdir -p /data/aurora-gateway/logs/monitor/
# [root] chown deploy:deploy /data/aurora-gateway/logs/monitor/
# 拷贝aurora_gateway_monitor.sh 到 /opt/workspace/aurora-gateway/ 目录下
# [root] chown deploy:deploy /opt/workspace/aurora-gateway/aurora_gateway_monitor.sh
# chmod +x /opt/workspace/aurora-gateway/aurora_gateway_monitor.sh
# [root] su - deploy
# cd /opt/workspace/aurora-gateway/
# ./aurora_gateway_monitor.sh&
# 检查日志是否正常输出

  

原文地址:https://www.cnblogs.com/wooluwalker/p/12115736.html

时间: 2024-10-03 23:16:34

shell监控进程状态,自启动的相关文章

Linux/Unix shell 监控Oracle告警日志(monitor alter log file)

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linux 下使用 shell 脚本来监控 Oracle 告警日志(monitor alter log file). Linux Shell的相关参考:        Linux/Unix shell 脚本中调用SQL,RMAN脚本        Linux/Unix shell sql 之间传递变量   

Linux/Unix shell 监控Oracle监听器(monitor listener)

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linux 下使用 shell 脚本来监控 Oracle 监听器. Linux Shell的相关参考:        Linux/Unix shell 脚本中调用SQL,RMAN脚本        Linux/Unix shell sql 之间传递变量        Linux/Unix shell 调用

shell 监控磁盘使用率【转】

方案一: disks=(`df |sed 1d | awk '{print $1,$5}'|tr -d %`) len=${#disks[@]} for ((i=1;i<=$len;i=i+2));do if [ ${disks[i]} -gt 80 ];then echo "${disks[$i-1]} ${disks[$i]}" fi done 方案二: df -Th|awk -F '[ |%]+' 'NR>1 {if($6>80) print $1}' 方案三:

利用shell监控cpu、磁盘、内存使用率

利用shell监控cpu.磁盘.内存使用率,达到警报阈值发邮件进行通知 并配合任务计划,即可及时获取报警信息 #!/bin/bash ############################################## #Author: Liuzhengwei - [email protected] #QQ:1135960569 #Last modified: 2017-04-19 21:50 #Filename: jiankong.sh #Description:  #########

shell 监控cpu,memory,load average

shell 监控cpu,memory,load average,记录到log,当负载压力时,发电邮通知管理员. 实现原理: 1.获取cpu,memory,load average的数值 2.判断数值是否超过自定义的范围,例如(CPU>90%,Memory<10%,load average>2) 3.如数值超过范围,发送电邮通知管理员.发送有时间间隔,每小时只会发送一次. 4.将数值写入log. 5.设置crontab 每30秒运行一次. #!/bin/bash # 系统监控,记录cpu.

mac设置shell脚本开机自启动

最近需要做分布式架构的网站,目前一直在调试阶段,每次开机的时候都要启动一大堆工具,比如zookeeper.activemq.redis.nginx等等,不厌其烦. 在网上搜了下mac如何设置shell脚本开机自启动,记录一下,方便自己也方便大家. 1.首先写一个sh脚本,比如: 1 cd ~/Documents 2 mkdir haha 代码很简单,进入Documents文件夹,建立haha目录,保存为run.sh 2.修改run.sh权限 sudo chmod 777 run.sh 3.右键点

shell 监控url 地址

shell 监控url 地址 [[email protected] opt]# cat web_url.sh #!/bin/bash for i in `cat web_url` do curl=`curl -I -s $i |head -1|cut -d " " -f2` if [ "$curl" == "200" ];then echo curl $i is ok else echo "$i is fail" | mail

Linux/Unix shell 监控Oracle实例(monitor instance)

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linux 下使用 shell 脚本来监控 Oracle 实例. Linux Shell的相关参考:        Linux/Unix shell 脚本中调用SQL,RMAN脚本        Linux/Unix shell sql 之间传递变量        Linux/Unix shell 调用 P

shell监控多台主机

用shell写了个脚本同时监控多台主机(监控主机是否在线,cpu,内存,硬盘,io使用状态,并有邮件通知功能),大神看后觉得有不当之处或有更好的实现方式,请不屑笔墨指出. 首先要在被监控主机和监控主机之间建立信任关系,不了解ssh证书验证的可以看看: http://dragon123.blog.51cto.com/9152073/1586795 安装mutt: [[email protected] ~]# yum install mutt 监控列表: [[email protected] ~]#