简单监测服务器的shell脚本

1、编写shell脚本如下:
#!/bin/bash
# chkconfig: 2345 10 90    
# description:监测linux服务器cpu、内存、磁盘

#cpu平均负载阀值
CPU_AVERAGE_LOAD=0.7

#剩余的最少警告的阀值
MIN_WARNING=20

#超过最多警告的阀值
MAX_WARNING=90

#监测cpu负载
monitor_cpu(){
  #十五分钟平均负载值
  load_quarter=`uptime | awk '{print $NF}'`

  #cpu内核数
  cpu_num=`grep -c 'model name' /proc/cpuinfo`

  #cpu最大负载
  cpu_load=${cpu_num}

  #报警的负载阀值
  warning=$(echo ${cpu_load} \* ${CPU_AVERAGE_LOAD}|bc)
  if [ $(echo "${load_quarter} >= ${warning} "|bc) == 1 ]
  then
    #报警
    warn 'cpu负载较大,请尽快处理'
  fi
  
  #监测cpu空闲比
  cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}' |cut -f 1 -d .`
  if [ ${cpu_idle} -lt ${MIN_WARNING} ]
  then
    warn 'cpu占用较高请尽快处理'
  fi

}

#监测内存
monitor_memory(){
  #总的内存
  total=`free -m |grep 'Mem'|awk '{print $2}' ` 

  #可用的内存
  available=`free -m |grep 'Mem'|awk '{print $NF}'`

  #可用内存所占比例
  rate=$(echo "scale=2;${available} / ${total} * 100"|bc)

  if [ $(echo "${rate} <= ${MIN_WARNING}"|bc) == 1 ]
  then
    warn '内存占用较大,请尽快处理'
  fi
  #监测Swap
  swap_total=`free -m|grep 'Swap'|awk '{print$2}'`
  swap_free=`free -m|grep 'Swap'|awk '{print$4}'`
  if [ ${swap_total} -gt 0 ]
  then
    swap_rate=$(echo "scale=2;${$swap_free} / ${swap_total}"|bc)
    if [ $(echo "${swap_rate} <= ${MIN_WARNING}"|bc) == 1 ]
    then
      warn '内存Swap剩余较少,请尽快处理'
    fi
  fi

}

#监测磁盘
monitor_disk(){
  #过滤第一行
  for i in `df -h |grep / |awk 'BEGIN {print 0} {print $5} END{print 0}'|cut -f 1 -d '%'`
    do
      if [ $(echo "${i} >= ${MAX_WARNING}"|bc) == 1 ]
      then
        warn '磁盘即将用完,请尽快处理'  
        break
      fi
    done
}

#报警,发送邮件
warn(){
  #发邮件
  printf "`date +%Y%m%d%H%M%S`: `/usr/local/php5/bin/php /var/www/html/tools/phpmailer/wangyi.php ${1}` \n" >> /var/log/monitorlog 2>&1 
}
#执行方法
monitor_cpu
monitor_memory
monitor_disk

2、配置每小时执行一次 

 0 */1 * * * /var/www/shell/monitor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值