Linux下性能预警及应急处理
自己编写一个脚本程序,该程序在工作时段(8:00-22:00),每隔一个小时执行一次;在其他时段每隔两小时执行一次。
每次执行都要完成如下任务:
1、检测进程CPU占用率,如果超出30%开始预警,超出80%就把该进程取消;
2、检测进程内存占用率,如果超出30%开始预警,超出70%就把该进程取消;
3、检测所有磁盘分区使用情况,如果超出90%就开始预警;
4、检测所有进程,如果发现僵尸进程,就人为取消该进程;
说明:所谓的预警就是把事件的性质、发生时间以及被处理掉的进程等重要信息统一输出到某个日志文件中。

一、[root@Shawn-T2 ~]# crontab -e
    加入以下命令:  *  8-22/1,22-7/2  *  *  *  sh  /monitor.sh
二、[root@Shawn-T2 ~]# vim monitor.sh
    添加以下内容:
#!/bin/bash
#This script is used for monitoring system load.
  time=`date +"%Y-%m-%d %H:%M:%S"`
  ps aux |  grep -v 'USER' >> /tmp/temp.txt
  while read -r line
  do
     declare -i CPUUsage=`echo $line | awk '{print $3}' | awk -F. ' {print $1}'`
     MEMUsage=`echo $line | awk '{print $4}' | awk -F. '{print $1}'`
     ProcessNum=`echo $line | awk '{print $2}'`
     STAT=`echo $line | awk '{print $8}'`
     Command=`echo $line | awk ' {print $11}'`
# Monitor CPU load.
     if [ $CPUUsage -ge 80 ];then
        kill -9 $ProcessNum
        echo "$time  Process $Command occupies too large CPU space and was killed!" >>  /var/log/monitor.log
     elif [ $CPUUsage -ge 30 ]; then
        echo "$time  Process $Command occupies too large ,please check it!" >>  /var/log/monitor.log
     fi
# Monitor Memory load.
     if [ $MEMUsage -ge 70 ];then
        kill -9 $ProcessNum
        echo "$time  Memory $Command occupies too large memory space and was killed!" >>  /var/log/monitor.log
     elif [ $CPUUsage -ge 30 ]; then
        echo "$time  Memory $Command occupies too large ,please check it!" >>  /var/log/monitor.log
     fi
# Monitor the zombie process.
     if [ "$STAT" == "Z" ]; then
     kill -9 $ProcessNum
     echo "$time Process $Command is zombie process and was killed." >>  /var/log/monotor.log
     fi
  done < /tmp/temp.txt
  rm -f /tmp/temp.txt

#Momitor the disk partition used space.
  df | grep -v Filesystem > /tmp/temp.txt
    while read -r line
    do
       declare -i DiskUsage=`echo $line | awk '{ if(NF==6){ print $5 }  else if(NF==5) { print $4 } }'| awk -F% '{print $1}'`
       DirName=`echo $line | awk '{ if(NF==6){ print $6 }  else if(NF==5) { print $5 } }'| awk -F% '{print $1}'`
       if [ $DiskUsage -ge 90 ];then
          echo "$time The partitipn which the directory $DirName mounted on occupies too large space ,please check it." >> /var/log/monitor.log
       fi
    done < /tmp/temp.txt
  rm -f /tmp/temp.txt

转载于:https://blog.51cto.com/jallen/448337

linux 系统监控脚本相关推荐

  1. linux 监控进程撤销,linux 系统监控脚本

    Linux下性能预警及应急处理 自己编写一个脚本程序,该程序在工作时段(8:00-22:00),每隔一个小时执行一次:在其他时段每隔两小时执行一次. 每次执行都要完成如下任务: 1.检测进程CPU占用 ...

  2. linux 程序返回值 139,Linux系统监控之ssh登陆自动139邮件短信提醒

    linux系统监控之ssh登陆自动139邮件短信提醒 Linux系统监控非常重要,互联网的网络的安全是一个非常重要的问题,很多时候,我们会出于安全考虑,希望服务器在有用户通过ssh登陆时能自动向管理员 ...

  3. Zabbix 系统监控(二)Linux 系统监控

    windows 系统硬件信息获取. linux 系统监控. linux 系统硬件信息获取 5 windows 系统硬件信息获取 本文通过在 OS 操作系统层面上,主要获取 windows 服务器下 C ...

  4. linux 系统监控、诊断工具之 IO wait

    1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器 ...

  5. linux系统监控命令汇总

    零.Linux系统监控命令速查手册 命令 功能应用 用法举例     free 查看内存使用情况,包括物理内存和虚拟内存 free -h或free -m     vmstat 对系统的整体情况进行统计 ...

  6. linux系统监控、诊断工具摘录top IO wait lsof

    linux 系统监控.诊断工具之 top 详解 http://my.oschina.net/leejun2005/blog/157910 linux系统监控.诊断工具之 IO wait http:// ...

  7. Linux系统监控命令整理汇总-掌握CPU,内存,磁盘IO等找出性能瓶颈

    的性能有问题,总之,每到晚上挖站否的主机就出现了不稳定的情况,系统负载忽高忽低.利用服务器日志分析利器:ngxtop和GoAccess也能查出有一些IP一直在不断地扫描服务器端口还有WP后台. 但是, ...

  8. Linux系统shell脚本之打印系统的IP信息

    Linux系统shell脚本基础之打印系统的IP信息 一.脚本要求 二.脚本内容 三.执行脚本 一.脚本要求 1.显示服务器的运行状态,并输出提示 2.输出电脑的IP地址等信息 3.将执行输出的信息记 ...

  9. s5.CentOS、Ubuntu、Rocky Linux系统初始化脚本

    CentOS.Ubuntu.Rocky Linux系统初始化脚本 Shell脚本源码地址 Gitee:https://gitee.com/raymond9/shell Github:https://g ...

最新文章

  1. Asp.net团队疯了(同时发布WebMatrix, Razor, MVC3和Orchard)
  2. python柱状图分析代码
  3. JavaWeb -- Struts2 ResultType细化, 国际化
  4. 被替换的项目不是替换值长度的倍数_如果要在Excel中计算单元格内指定的字符长度,我推荐这两个公式.........
  5. 这100道Linux常见面试题,看看你会多少?
  6. iTOP-4412开发板实现3路ADC数模转换驱动例程
  7. HDU 3530Subsequence(单调队列)
  8. 数据分析的流程是啥样?
  9. 萤火虫算法matlab实现,智能算法萤火虫算法Matlab源代码
  10. Android 应用上线安卓市场
  11. JSTL核心标签超详细
  12. 金融计量学第一次实验:eviews做多元线性回归分析
  13. 月薪过万的90后,都是做什么职业的?
  14. 向 webview 添加 userScript
  15. Ci522 13.56MHz非接触式读写器芯片--Si522 Lowcost版本
  16. linux libssl.so.6,centos6 安装directadmin出现libssl.so.6找不到问题
  17. 烈日炎炎,向亲爱的爸爸说声辛苦了
  18. 包含GODOT所有名称颜色的JSON
  19. 万年历C语言程序可参考的文献,万年历的c语言程序
  20. 为什么当初很多人不看好的阿里云做起来了?

热门文章

  1. c++基础学习(05)--(指针,引用)
  2. 剑指offer_04
  3. guido python正式发布年份_Python语言适合哪些领域的计算问题? (1.3分)_学小易找答案...
  4. pycharm/clion/idea等产品多含代码左移右移操作
  5. codeforces 116A-C语言解题报告
  6. Java提高篇 —— Java关键字之final的几种用法
  7. 谁在告谁?移动专利混战图
  8. 项目经理如何把工作简单化
  9. H.264/AVC 标准中CAVLC 和CABAC 熵编码算法研究
  10. predict_16x16[i_mode]( p_dst, i_stride )lowres