| 关键词: 程序 process 脚本 报警 procnum 日志 kill 进程 当然 当时 |
今天中午突然收到nagios的报警,有2台服务器的process超出了阀值,而且那几分钟内都飚得很高,因为当时临时有点事,稍等了会上服务器后一看,没发现啥错误日志,也不知道是哪个程序导致的,这就比较郁闷了,所以写了比较简单的记录日志的脚本,以防止以后再飚起来还是无法查找原因。 脚本如下: #!/bin/bash #monprocess.sh #此脚本主要用来判断在主机中的进程突然增大时,是哪个程序导致的,并且在发现此问题时可以及时的通知到运维人员。 host=`hostname` Mailto="[email protected]" procnum="200" if [ `ps -ef |wc -l` -gt $procnum ];then ps -ef |awk '{a[$8]++}END{for(i in a){print a[i],i}}'|sort -rn |head -15 >/root/process.log echo -e "$host's process more than $procnum" |mail -s "Process is beyond the threshold in `date '+%m/%d/%Y %H:%M'`" $Mailto fi #报警的只是附带的,主要是记录下当时进程的日志,方便我们在接到报警后,登陆上去后查看是什么哪个程序导致的,也方面查找一些原因。当然也可以在程序后面 添加判断,判断如果是我们的的生产程序出了故障导致,可以直接kill掉程序,然后等确认kill完毕后,再重启服务。如果不是主程序的,那就退出或直接Kill。当然 只是建议。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|