实在是被逼无奈,才想出如此招数!

服务器老是被攻击,cpu占用特别高,而且特别高的进程是httpd(我知道有程序漏洞,but程序不是我写的)。

第一种情况:

httpd的占用已经达到99.8%了
第一种解决办法

当cpu占用超过95%同时60s间隔内httpd的 pid相同时候 则杀死该pid

代码:

#!/bin/sh
# qiyulin to monitor used CPU
record=0
while true;
do
cpu=$(top -b -n1 | grep "httpd" | head -1 | awk '{print $9}')
pid=$(top -b -n1 | grep "httpd" | head -1 | awk '{print $1}')
#cpu check
result=${cpu/.*}
if [[ $record == $pid ]];then kill -9 $pid;echo "$pid was killed";fi
if [[ $result > 95 || $result == 100 ]];then let record=${pid};else let record=0;fi
#echo
echo `date +%F" "%H:%M:%S`+" cpu:$result% record pid:$record pid:$pid"
sleep 60
done

这样服务器平稳的运行了一段时间,至少保证不会再死了,后来又出现了状况2

第二种情况

top中没有特别高的cpu占用,但是总的mem占用超过了99%

唉!表示很无奈,怎么办呢? 当used使用超过95%的值的时候则 重启httpd

代码:

#!/bin/sh
# qiyulin to monitor used CPU
record=0
while true;
do
cpu=$(top -b -n1 | grep "httpd" | head -1 | awk '{print $9}')
pid=$(top -b -n1 | grep "httpd" | head -1 | awk '{print $1}')
#cpu check
result=${cpu/.*}
if [[ $record == $pid ]];then kill -9 $pid;echo "$pid was killed";fi
if [[ $result > 95 || $result == 100 ]];then let record=${pid};else let record=0;fi
#mem check
mem=$(free -m | awk 'NR==2 {print $3}')
if [[ $mem > 3638 ]];then apache-restart;echo "$mem is out 95%,so the httpd restart";fi
#echo
echo `date +%F" "%H:%M:%S`+" cpu:$result% record pid:$record pid:$pid mem:$mem"
sleep 60
done

无奈之举....

哦对了,忘了说了这里如果想要 你写的脚本在后台飞~~~

需要使用命令如下:

nohup sh ./checkCpu.sh &

这样用户 即使退出则该脚本也会继续运行!

如何杀死该脚本

ps -ax #查看所有的进程pid
kill -9 pid //杀死一个某个pid

原创:http://blog.csdn.net/qilin001cs

sh shell实现自动杀死cpu占用最高的pid,同时当cpu超过95%自动重启apache相关推荐

  1. java cpu 内存使用情况_java高cpu占用和高内存占用问题排查 (转)

    高cpu占用 1.top命令:Linux命令.可以查看实时的CPU使用情况.也可以查看最近一段时间的CPU使用情况. 2.PS命令:Linux命令.强大的进程状态监控命令.可以查看进程以及进程中线程的 ...

  2. java 高cpu占用问题解决

    这是一次真实的问题解决,献给同样被高cpu问题困扰的大家. 背景: 某天内部用户反馈,前端界面加载特别慢.测试了网络,日志,代码,感觉都正常,但是程序在使用查询sql的时候就是不返回. 1.进到lin ...

  3. VMware Linux虚拟机CPU占用过高

    VMware Linux虚拟机CPU占用过高 虚拟机内存占用过高是一个巨大的问题,之前已经讲过,而CPU占用过高更是重上加重,今天就来讲讲CPU占用过高的解决方法 CPU占用过高其实很简单,总共有两个 ...

  4. 如何排查CPU占用100%

    线上后台报警CPU占用100%,CPU占用过高,本文介绍一下如何排查CPU占用过高原因. 步骤1. top 输入top命令,找到占用CPU最高的进程.按Shift+P键排序: 可以看到CPU占用最高的 ...

  5. x2go - nxagent的CPU占用为什么这么高?

    1. 我在本地客户端做了一个测试: 本地客户端(若没有以+iglx启动服务器)默认直接硬件加速渲染,运行glxgears,cpu占用比较低.当我更改为直接软件渲染,cpu飙升至200%,且识别的ope ...

  6. 利用shell脚本来监控linux系统的负载与CPU占用情况

    这几天在学习研究shell脚本,写的一些系统负载与CPU监控脚本程序.在没有nagios监控软件的情况下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统负载与CPU占用的使用情况. 一.安 ...

  7. Linux OOM 自动杀死进程(转)

    Linux OOM 自动杀死进程 问题描述: 今天上班后,登录一台内网测试服务器,发现部分进程失踪 (Nginx/PHP-FPM/MySQL/Crond). 解决方法: 1.首先启动这些进程,保证正常 ...

  8. Oracle CPU占用过高解决办法

    1.shell下使用top命令,记录占用CPU最高的Oracle线程的PID值, 2.SQLPLUS select PID,SPID from v$process p where p.SPID='23 ...

  9. CPU占用内存率高的几种可能以及解决方法

    CPU占用内存率高的几种可能以及解决方法 CPU占用率高的九种可能 1.防杀毒软件造成故障 由于新版的KV.金山.瑞星都加入了对网页.插件.邮件的随机监控,无疑增大了系统负担.处理方式:基本上没有合理 ...

最新文章

  1. [知识图谱构建] 二.《Neo4j基础入门》基础学习之创建图数据库节点及关系
  2. Unity 2018.3地形功能更新介绍
  3. 浅谈 Vue 项目优化
  4. [转]Paul Adams:为社交设计
  5. 中科大快手提出多模态交叉注意力模型:MMCA,促进图像-文本多模态匹配!
  6. 基础知识(十四)服务器搭建
  7. 智能对联模型太难完成?华为云ModelArts助你实现!手把手教学
  8. WebLogic 之安全配置
  9. nice值 linux进程,Linux进程优先级和nice值
  10. DbEntry 开发实践:Wiki 系统(四)
  11. 发一套最完整的直升机原理(绝对完整,绝对精华)
  12. linux测试上下行最大网速和实时网速
  13. PLS-00103: Encountered the symbol “DECLARE“
  14. graphpad prism怎么添加图例_Graphpad Prism 绘制散点图详细图解
  15. Linux系统下tmux的分屏使用
  16. 安兔兔android手机性能排行榜,安兔兔手机性能排行榜
  17. Ceisum加载天地图(矢量、影像)
  18. Arkime与Suricata联动配置与使用
  19. WSL(ubuntu2204)xfce4安装中文环境和fcitx5框架及中文输入法
  20. 投资组合分析:portfolio_analysis.Tangenvy_portfolio(切点组合)

热门文章

  1. js网状特效源代码下载
  2. 对“佩戴低度数近视镜可延缓近视发展?”的一些疑问
  3. 微信小程序如何实现上拉刷新(即分页加载数据)?
  4. 满城尽带黄金“假”(二)——断臂殇为谁而鸣
  5. java线段的平移和旋转,几何变换(旋转、缩放、平移)
  6. java迅雷下载excel,excel官方下载-excel2018 官方版
  7. input文本框中添加提示文字,输入后自动消失
  8. 2020-08 前端技术汇总
  9. Python爬取租房数据实例,据说可以入门爬虫的小案例!
  10. NOI2015 Day1 T2 软件包管理器 树链剖分