- 论坛徽章:
- 8
|
本帖最后由 zl624867243 于 2018-03-29 16:49 编辑
先贴代码:mon_all_process.sh 如下:
- #!/bin/bash
- #function: 遍历文本内容 监控进程是否存在
- cat ./process_all/process_*.txt |while read -r line
- do
- name=$(echo $line)
- #echo $name
- #ps -ef |grep $name
- processnum=$(ps -ef | grep "$line" |grep -v grep|grep -v mon_all_process.sh| wc -l)
- if [ $processnum -lt 1 ];then
- echo "$line have down,then request interface......."
- curl "http://xxyy.com/index.php?_&_a=monitoringEmail&only_string=$line"
- else
- :
- fi
- done
复制代码
process_a.txt 的代码如下:
process_b.txt 类似process_c.txt 类似
......
这个脚本用crontab 2分钟执行一次,检测txt里的进程,是否存在(txt里的进程可能有上百上千个),如果不存在 带参数 请求开发的接口,开发那边就用php触发邮件。
现在问题来了,我每两分钟遍历一次 进程挂了就请求接口,如果进程几个小时还没起来,那岂不是要发很多个右键,而且频繁请求接口 接口压力大。开发的意思是 :
如果进程挂了第一次是要请求接口的 第二次就不要去请求接口了。并且如果进程恢复了还要继续监控进程。我说 shell又不是类似于java 的那种 是app server 能持续去监听 并且计数。这个不好搞,要他们php去处理计数,开发那边又说挂了就不要去请求接口了 接口压力大。
各位坛友有什么叫的建议 不?或者shell或者python能否实现?
|
|