zoukankan      html  css  js  c++  java
  • Shell脚本监控CPU、内存和硬盘利用率

    :http://blog.51cto.com/lizhenliang/1610415

    1、监控CPU利用率(通过vmstat工具)  

      

    #!/bin/bash
    #====================================================
    # Author: lizhenliang - EMail:zhenliang369@163.com
    # Create Date: 2015-02-01
    # Description: cpu utilization monitor
    # blog:lizhenliang.blog.51cto.com
    #====================================================
    if [ `uname` != "Linux" ];then
            echo "check os not linux."
            exit 1
    fi
    which vmstat &>/dev/null          #这样的写法.这条命令的意思是将标准输出(返回0)和错误输出(返回非0)全部重定向到/dev/null中,也就是将产生的所有信息丢弃.
    if [ $? -ne 0 ];then
            echo "vmstat command no found, please install procps package." 
            exit 1
    fi
    ##################################################
    cpu_us=`vmstat | awk '{print $13}' | sed -n '$p'`    #awk 命令 输出第13列的数据 sed -n '$p' 最简输出内容。
    cpu_sy=`vmstat | awk '{print $14}' | sed -n '$p'`
    cpu_id=`vmstat | awk '{print $15}' | sed -n '$p'`
    cpu_wa=`vmstat | awk '{print $16}' | sed -n '$p'`   #等待I/0完成
    cpu_sum=$(($cpu_us+$cpu_sy))
    cpu_info()
    {
    echo "CPU_Sum : $cpu_sum% ( CPU_Use:${cpu_us}% , CPU_System:${cpu_sy}% )" 
    echo "CPU_Idle : ${cpu_id}%"
    echo "CPU_Wait : ${cpu_wa}"
    }
    #cpu_info;
    if [ $cpu_sum -ge 90 ];then
            echo "CPU utilization $cpu_sum." | mail -s "CPU Monitor" baojingtongzhi@163.com
    
    fi

    2、监控内存利用率

     1 #!/bin/bash
     2 #====================================================
     3 # Author: lizhenliang - EMail:zhenliang369@163.com
     4 # Create Date: 2015-02-01
     5 # Description: memory utilization monitor
     6 # blog:lizhenliang.blog.51cto.com
     7 #====================================================
     8 which bc &>/dev/null         #验证bc命令是否存在,若存在返回值是0,若不存在返回值是非零。
     9 if [ $? -ne 0 ];then
    10         echo "bc command no found, Please install bc package." 
    11         exit 1
    12 fi
    13 Date=`date +%F" "%H:%M`     #日期输出    %F 日期(年月日) ; "  "分隔符调整显示后的格式 ; %H:%M 时间(时:分)。 
    14 IP=`ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -d: -f2` #查询ip地址
    15 Total=`free -m | grep Mem | awk '{print $2}'`           #查询剩余内存还剩多少以  -m (以M为单位输出) 
    16 Use=`free -m | awk '/buffers// {print $NF}'`
    17 Free=$(($Total-$Use))
    18 Total_conv=`echo "scale=2;$Total/1024" | bc | awk '{print $1"G"}'`  #通过bc计算,保留小数点后两位(scale)
    19 if [ $Free -lt 200 ];then
    20         Content=`echo -e "Date : $Date 
    Host : $IP 
    Total : ${Total_conv} 
    Use : ${Use}M 
    Free : ${Free}M"`
    21         echo "$Content" | mail -s "Memory Monitor" baojingtongzhi@163.com
    22 fi

     3、监控磁盘利用率

     1 #!/bin/bash
     2 #====================================================
     3 # Author: lizhenliang - EMail:zhenliang369@163.com
     4 # Create Date: 2015-02-01
     5 # Description: disk utilization monitor
     6 # blog:lizhenliang.blog.51cto.com
     7 #====================================================
     8 Date=`date +%F" "%H:%M`
     9 IP=`ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -d: -f2`
    10 Total=`fdisk -l | grep "Disk /dev/sd[a-z]" |awk '{print $2$3"GB"}' |sed 's/:/=/' |xargs echo -n |sed 's/[ ]/,/g'`    #去掉换行符,并以逗号分隔在邮件显示总每个分区大小
    11 Disk_Use=`df -h |awk '{print $1"="$5}' | sed '1d' | sed 's/%//g'`
    12 for i in $Disk_Use
    13 do
    14         A=`echo $i |awk -F'=' '{print $2}'`
    15         if [ $A -gt 8 ];then
    16                 echo -e "Date : $Date 
    Host : $IP 
    Total : $Total 
    Problem : Part Use ${i}%" | mail -s "Disk Mo
    17 nitor" baojingtongzhi@163.com
    18         fi
    19 done
  • 相关阅读:
    Makefile 常用函数表
    情绪管理
    网赚呓语
    Gym 100952C&&2015 HIAST Collegiate Programming Contest C. Palindrome Again !!【字符串,模拟】
    Gym 100952B&&2015 HIAST Collegiate Programming Contest B. New Job【模拟】
    Gym 100952A&&2015 HIAST Collegiate Programming Contest A. Who is the winner?【字符串,暴力】
    HDU 1024 Max Sum Plus Plus【动态规划求最大M子段和详解 】
    HDU 1003 Max Sum【动态规划求最大子序列和详解 】
    HDU 1010 Tempter of the Bone【DFS经典题+奇偶剪枝详解】
    DFS中的奇偶剪枝学习笔记
  • 原文地址:https://www.cnblogs.com/carry00/p/10132719.html
Copyright © 2011-2022 走看看