Ubuntu監控load腳本:
# vi load.sh
按a或i進入編輯模式
#!/bin/bash
Name=`hostname`
IP=`/sbin/ifconfig eth0 | grep "inet addr" | awk -F[:" "]+ '{print $4}'`
Date=`date +%m%d%y`
Load=`/usr/bin/uptime | grep load | awk -F[:" "]+ '{print $14}' | tr -d ","`
Load2=150
if [ $(echo "$Load > $Load2" | bc) -eq 1 ]
then
/usr/bin/touch /log/Load/$Date.log
/usr/bin/top -b -d 1 -n 3 | /usr/bin/head -15 > /log/Load/$Date.log
/usr/bin/mail -s "$Name($IP) Load is $Load" [email protected] < /log/Load/$Date.log
fi
按Esc鍵退出編輯模式
:wq (保存並退出)
難點說明:
1、浮點數比較大小方法:$(echo "$Load > $Load2" | bc) -eq 1 ,1代表真(即大於),0代表假(即不大於)
2、當Load值(取的第1個值,後2個表示5分鐘和10分鐘內的load)大於150時發郵件通知並截取top的前15行
3、在crontab中執行top命令需要參數(-b -d 1 -n 3,每1秒執行,執行3次),否則不會有信息到log文件裏的
Ubuntu監控load腳本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.