2019独角兽企业重金招聘Python工程师标准>>>
1: 监控进程运行时间的脚本如下:
#!/bin/sh
STATE_OK=0
STATE_CRITICAL=2
STATE_UNKNOWN=3
if [ $# -eq 1 ];thenmyprocss=$1starttime=`ps -eo lstart,cmd |grep "${myprocss}"|grep -v grep|grep -v check_process_starttime|grep -v bash|head -1|cut -b 1-24`if [[ -n ${starttime} ]];thenstarttimeseconds=`date +%s -d "${starttime}"`curenttimeseconds=`date +%s`let difftimeseconds=curenttimeseconds-starttimesecondsif [ $difftimeseconds -gt 300 ];thenecho "CRITICAL,starttime is ${difftimeseconds} seconds.|starttime=${difftimeseconds}"exit ${STATE_CRITICAL}elseecho "OK,starttime is ${difftimeseconds} seconds.|starttime=${difftimeseconds}"exit ${STATE_OK}fielseecho "OK,starttime is ok.|starttime=0"exit $STATE_OKfi
elseecho "UNKNOWN,starttime is unknown.|starttime=-1"exit $STATE_UNKNOWN
fi
2: 脚本使用说明
脚本只需要传一个参数,就是进程的名字。sh check_process_starttime 'init'
脚本是按照nagios插件格式来写的
3: 脚本说明
ps -eo lstart获取脚本的启动时间,然后跟当前时间进行对比,如果超过300s,也就是已经运行了5分钟,就进行告警。
4: 脚本待优化说明
1: 可以让critical的阀值由参数传递进去。
2: 得支持多个进程同时探测