监控脚本

#!/bin/bash
#=================类nagios监控cpu使用情况/交换分区使用情况/根分区使用情况/用户登录情况=================

#完成如下功能:

#监控cpu的使用情况,当超过80%则警告

#监控交换分区的使用情况,当超75%则警告

#监控根分区的使用情况,当超过85%则警告

#监控系统用户的登录情况,当超过5个则警告
#=======================================================================================================

#获取本服务器的IP地址
IP=`ifconfig eth0|grep 'inet addr'|awk '{print $2}'|awk -F: '{print $2}'`

#指定邮件地址
mail_address=2348234@163.com

#指定cpu空闲百分比的警告值
cpu_free_warn=20

#指定交换分区剩余百分比的警告值
swap_warn=0.25

#指定用户登录数的警告值
user_count_warn=5

#指定根分区磁盘使用百分比的警告值
disk_used_warn=85


#+++++++++++++++++++++++++++++++监控cpu的使用情况,当超过80%则警告++++++++++++++++++++++++++++++++++++++++++++++++++

#取cpu的idle值(整数部分)
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."`

#当前cpu使用超过80%(即剩余小于20%),立即发邮件告警
if (($cpu_idle < $cpu_free_warn)); then
echo "$IP服务器cpu剩余$cpu_idle%,使用率已经超过80%,请及时处理。" | mutt -s "$IP 服务器CPU告警" $mail_address
fi

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#-----------------------------监控交换分区的使用情况,当超75%则警告--------------------------------------------------

#系统分配的交换分区总量
swap_total=`free -m | grep Swap | awk '{print $2}'`

#当前剩余的交换分区free大小
swap_free=`free -m | grep Swap | awk '{print $4}'`

#当前已使用的交换分区used大小
swap_used=`free -m | grep Swap | awk '{print $3}'`

#交换分区剩余百分比
swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc`

#判断交换分区的剩余百分比是否小于警告值
swap_now=`expr $swap_per < $swap_warn`

#当小于警告值时,立即发邮件警告
if [ $swap_now == 0 ];then
echo "$IP服务器swap交换分区只剩下 $swap_free M 未使用,剩余不足20%,使用率已经超过80%,请及时处理。" | mutt -s "$IP 服务器内存告警" $mail_address
fi
#------------------------------------------------------------------------------------------------------------------------

#.......................监控根分区的使用情况,当超过85%则警告.................................

#取当前根分区(/dev/mapper/VolGroup-lv_root)已用的百份比值(只取整数部分)
disk=`df -hP|grep '/dev/mapper/VolGroup-lv_root'|awk '{print $5}' | cut -f 1 -d "%"`

#当根分取的使用超过85%时,立即发邮件警告
if (($disk > $disk_used_warn));
then
echo "$IP 服务器 /根分区 使用率已经超过85%,请及时处理。" | mutt -s "$IP 服务器硬盘告警" $mail_address
fi
#.............................................................................................................


#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&监控系统用户的登录情况,当超过5个则警告&&&&&&&&&&&&&&&&&&&&&&&&&&&
#取当前用户登录数
users=`uptime | awk '{print $4}'`

#当用户登录数超过5人,立即发邮件警告
if (($users >= $user_count_warn));
then
echo "$IP 服务器用户数已经达到$users个,请及时处理。" | mutt -s "$IP 服务器用户数告警" $mail_address
fi
#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

原文地址:https://www.cnblogs.com/liujunjun/p/12141940.html