shell监控脚本-监控系统负载
注意:请先参考 ,监控脚本在 rhel5 下测试正常,其它版本的linux 系统请自行测试#监控系统负载cat chk_load.sh
#!/bin/bash
#
#script_name:chk_load.sh
#check system load
#
#last update 20130320 by dongnan
#bbs# http://bbs.ywwd.net/
#blog# http://dngood.blog.51cto.com
#
#ssh root@xen "/bin/cat /proc/loadavg" | awk '{print $1}' | awk -F. '{print $1}'
#0
#variables
ssh=/usr/bin/ssh
sh_dir=/root/sh/
crondir=${sh_dir}crontab
source ${sh_dir}CONFIG
hosts="$LINUX_WEB_HOSTS"
let loadlimit=1
log=${crondir}/log/system_load.log
#main
#主循环遍历机器
for HOST in $hosts ;do
#主循环遍历机器
LOAD=$($ssh -o ConnectTimeout=3 root@$HOST "/bin/cat /proc/loadavg" | awk '{print $1}' | awk -F. '{print $1}')
#无法连接的主机,跳过本次循环
test -z "$LOAD" && continue
#true
if [ "$LOAD" -lt "$loadlimit" ];then
#如果找到load文件,则发送解除报警邮件
if [ -f $crondir/log/"$HOST".load ];then
#sms
#for mobile in $MOBILES;do
#echo "$HOST load ok"|/usr/local/bin/gammu --sendsms TEXT "$mobile" -unicode
#done
#mail
for mail in $MAILS;do
echo "$HOST load ok" | mail -s "$HOST load ok" $mail
done
#删除flag
rm -f $crondir/log/"$HOST".load
fi
#false
else
#不能找到load文件,则发送报警邮件
if [ ! -f $crondir/log/"$HOST".load ];then
#sms
#for mobile in $MOBILES;do
#echo ""$HOST" overload"|/usr/local/bin/gammu --sendsms TEXT "$mobile" -unicode
#done
#mail
for mail in $MAILS;do
echo "$HOST overload" | mail -s "$HOST overload" $mail
done
#生成flag
echo "overload" >$crondir/log/"$HOST".load
#log
date +'%F %T' >>$log
echo "$HOST overload" >> $log
fi
#
fi
#
done
结束
更多请: linux 系统运维 37275208 vmware 虚拟化 166682360