shell監控腳本-監控系統負載
注意:請先參考 shell監控腳本-準備工做,監控腳本在 rhel5 下測試正常,其它版本的linux 系統請自行測試
#監控系統負載linux
cat chk_load.sh shell
#!/bin/bash bash
# 運維
#script_name:chk_load.sh ssh
#check system load ide
# 測試
#last update 20130320 by dongnan spa
#bbs# http://bbs.ywwd.net/ .net
#blog# http://dngood.blog.51cto.com code
#
#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
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
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