shell脚本监控服务器状态
想到公司内部测试服务器还没有系统状态监控,不想装nagios来监控,那样太麻烦了,又不想自己去写脚本,网上找了个,根据自己服务器的情况稍微修改了下,这里还要再多说一句,并不是网上发出来shell脚本就适合你的情况,最好是自己先修改测试下再部署.
系统:centos 5.5
1.监控服务器状态脚本内容:
#!/bin/bash IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "` cpu_num=`grep -c 'model name' /proc/cpuinfo` load_15=`uptime | awk '{print $NF}'` average_load=`echo "scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a)) print 0;print a" | bc` average_int=`echo $average_load | cut -f 1 -d "."` load_warn=0.70 if (($average_int > 0)); then echo "$IP服务器15分钟的系统平均负载为$average_load,超过警戒值1.0,请立即处理!!!" | mailx -s "$IP 服务器系统负载严重告警!!!" rocdk@163.com else load_now=`expr $average_load \> $load_warn` if (($load_now == 1)); then echo "$IP服务器15分钟的系统平均负载达到 $average_load,超过警戒值0.70,请及时处理。" | mailx -s "$IP 服务器系统负载告警" rocdk@163.com fi fi cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."` if (($cpu_idle < 20)); then echo "$IP服务器cpu剩余$cpu_idle%,使用率已经超过80%,请及时处理。" | mailx -s "$IP 服务器CPU告警" rocdk@163.com fi swap_total=`free -m | grep Swap | awk '{print $2}'` swap_free=`free -m | grep Swap | awk '{print $4}'` swap_used=`free -m | grep Swap | awk '{print $3}'` if (($swap_used != 0)); then swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc` swap_warn=0.20 swap_now=`expr $swap_per \> $swap_warn` if (($swap_now == 0)); then echo "$IP服务器swap交换分区只剩下 $swap_free M 未使用,剩余不足20%,使用率已经超过80%,请及时处理。" | mailx -s "$IP 服务器内存告警" rocdk@163.com fi fi #disk_sda=`df -h | grep /dev/sda3 | awk '{print $5}' | cut -f 1 -d "%"` disk_sda=`df -Ph |grep /dev/mapper/VolGroup00-LogVol00|awk '{print $5}'|cut -f 1 -d "%"` if (($disk_sda > 80)); then echo "$IP 服务器 /根分区 使用率已经超过80%,请及时处理。" | mailx -s "$IP 服务器硬盘告警" rocdk@163.com fi users=`uptime | awk '{print $6}'` if (($users >= 5)); then echo "$IP 服务器用户数已经达到$users个,请及时处理。" | mailx -s "$IP 服务器用户数告警" rocdk@163.com fi
此脚本需要bc和mailx配合才能正常运行,如果没有装这两个的,请先安装或者先单独运行脚本再让crontab去执行.
chmod +x /root/webbak/sys-monitor.sh
2.加入crontab
*/10 * * * * root /root/webbak/sys-monitor.sh
service crond reload
可以从crond日志里看到,脚本已经被crontab执行了.
评论: