本帖最后由 Landon 于 2016-4-22 14:31 编辑
公司有一个这样的需求
1.监控硬盘内存,规定挂到crontab,每一分钟执一次
2.硬盘和内存使用率达到70的时候,发出告警邮件,因为很可能不能及时处理的,所以只能让它报3次就不能在向邮箱发警告了!
3.同样达到90的时候,也同样要发出警告,但同样只能报3次!
4.硬盘存数据使用率是硬性增长的,但内存不同。因为有时候某些程序可能在一定时间会使用率特别高超出70,但之后又会降回到70以内,所以这时候也需要发出恢复正常通知到邮箱,而硬盘就不需要发这个!
PS:有意思的地方就是怎么去计数,记住这个脚本是每分钟都在执行,最好只使用的1个临时文件!
{{{密码回复可见}}}
公司有一个这样的需求
1.监控硬盘内存,规定挂到crontab,每一分钟执一次
2.硬盘和内存使用率达到70的时候,发出告警邮件,因为很可能不能及时处理的,所以只能让它报3次就不能在向邮箱发警告了!
3.同样达到90的时候,也同样要发出警告,但同样只能报3次!
4.硬盘存数据使用率是硬性增长的,但内存不同。因为有时候某些程序可能在一定时间会使用率特别高超出70,但之后又会降回到70以内,所以这时候也需要发出恢复正常通知到邮箱,而硬盘就不需要发这个!
PS:有意思的地方就是怎么去计数,记住这个脚本是每分钟都在执行,最好只使用的1个临时文件!
{{{密码回复可见}}}
0
df -h |awk '{print $1 "\t" $5 "\t" $6 }' |grep /dev/sd
free -m |awk '{print $1 "\t" $3 "\t" }' |grep - |cut -f 2
我目前只会取值 ,其他的就不会了
free -m |awk '{print $1 "\t" $3 "\t" }' |grep - |cut -f 2
我目前只会取值 ,其他的就不会了
0
scale=2 保留2位
用掉的内存 除以 总内存 类似得出0.65 这样的数字
这样就能知道使用了65%
dessler 发表于 2016-4-22 01:39
mem_per=`echo "scale=2;$mem_used/$mem_total"|bc -l`
我翻译不出来,求翻译
scale=2 保留2位
用掉的内存 除以 总内存 类似得出0.65 这样的数字
这样就能知道使用了65%
0
我查了资料,已经了解是什么意思了,谢谢了
我继续翻译,翻译完了发出来
Landon 发表于 2016-4-22 14:30
scale=2 保留2位
用掉的内存 除以 总内存 类似得出0.65 这样的数字
这样就能知道使用了65%
我查了资料,已经了解是什么意思了,谢谢了
我继续翻译,翻译完了发出来
0
free -m | sed -n '2p' | awk '{print "used mem is "$3"M,total mem is "$2"M,used percent is "$3/$2*100"%"}'
0
本帖最后由 zhangyuqing 于 2016-5-1 19:54 编辑
df |awk '/\/$/{print $4}'|cut -d% -f1
free -m|awk '/cache:/{print $3}'我和你一样 就会简单写个取值的
dessler 发表于 2016-4-17 01:42
df -h |awk '{print $1 "\t" $5 "\t" $6 }' |grep /dev/sd
free -m |awk '{print $1 "\t" $3 "\t" }' |gre ...
df |awk '/\/$/{print $4}'|cut -d% -f1
free -m|awk '/cache:/{print $3}'我和你一样 就会简单写个取值的
0
[root@localhost shell]# vim mon.sh
#!/bin/bash
notenum=0
while :
do
for m in $(df -h |awk '/^.*sd.*/ {print $1}' )
do
diskpercent=`df -h |grep $m|awk '{print $5}'|sed 's/%//'`
if [ $diskpercent -ge 3 -a $notenum -lt 3 ]
then
# echo "Fire!!!"|mail -s "111" xxx.@toor.com
echo "$m is boom"
notenum=$(($notenum+1))
fi
done
sleep 2
done
写了一小段,后面想不出来了
#!/bin/bash
notenum=0
while :
do
for m in $(df -h |awk '/^.*sd.*/ {print $1}' )
do
diskpercent=`df -h |grep $m|awk '{print $5}'|sed 's/%//'`
if [ $diskpercent -ge 3 -a $notenum -lt 3 ]
then
# echo "Fire!!!"|mail -s "111" xxx.@toor.com
echo "$m is boom"
notenum=$(($notenum+1))
fi
done
sleep 2
done
写了一小段,后面想不出来了
编辑回复