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
touch /log/Load/$Date.log
/usr/bin/top | head -15 | tr -d ‘[m‘ > /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、top前15行到文档中会有些干扰符号,排除了“[m”,还有部分无法排除,主要和信息排版有关
时间: 2024-10-12 13:19:52