linux性能监控 + Sendmail 发邮件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux性能监控 + Sendmail 发邮件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4373字,纯文字阅读大概需要7分钟。
内容图文
![linux性能监控 + Sendmail 发邮件](/upload/InfoBanner/zyjiaocheng/968/6d868a604f5b4cc88130465376d4cd91.jpg)
#!/bin/bash
#控制发邮件的阈值是在rate,rate1和FF值(三个同样的用途,仅仅是名字不同)
#
#注:该博文中的变量不规范,我是随意定义的,请注意
#
#定义时间倒计时函数
stop_time(){
kk=3
while [ $kk -gt 0 ];do
sleep 1
kk=$(($kk - 1))
echo -ne "\r \r"
done
}
#free 监控内存使用率,超过80%就发邮件
#获取当前内存各值
mem_total=$(free -m | sed -n '2p' | awk '{print $2}')
mem_used=$(free -m | sed -n '2p' | awk '{print $3}')
mem_free=$(free -m | sed -n '2p' | awk '{print $4}')
mem_shared=$(free -m | sed -n '2p' | awk '{print $5}')
mem_buff=$(free -m | sed -n '2p' | awk '{print $6}')
mem_cached=$(free -m | sed -n '2p' | awk '{print $7}')
mem_rate=`echo "scale=2;$mem_used/$mem_total" | bc | awk -F. '{print $2}'`
[ ! -d /home/zpz/mail ] && mkdir /home/zpz/mail
echo "10分钟前内存使用情况:">>/home/zpz/mail/memory.txt
#换算成M和G为单位
echo -e "total: `expr $mem_total / 1000`G (${mem_total}M)
used: `expr $mem_used / 1000`G (${mem_used}M)
free: `expr $mem_free / 1000`G (${mem_free}M)
shared: `expr $mem_shared / 1000`G (${mem_shared}M)
buffer: `expr $mem_buff / 1000`G (${mem_buff}M)
available: `expr $mem_cached / 1000`G (${mem_cached}M)">>/home/zpz/mail/memory.txt
echo -e "rate:${mem_rate}%(如显示为 06% 即表示 0.06%,换算成G为单位时均以1000计算,而非1024)">>/home/zpz/mail/memory.txt
if [ $mem_rate -ge 40 ];then
stop_time
mem_total1=$(free -m | sed -n '2p' | awk '{print $2}')
mem_used1=$(free -m | sed -n '2p' | awk '{print $3}')
mem_rate1=`echo "scale=2;$mem_used1/$mem_total1" | bc | awk -F. '{print $2}'`
#判断2次统计的内存使用率
if [ $mem_rate1 -ge $mem_rate ];then
echo "">>/home/zpz/mail/memory.txt
echo "当前内存使用情况:">>/home/zpz/mail/memory.txt
echo -e "total: `expr $mem_total / 1000`G (${mem_total}M)
used: `expr $mem_used / 1000`G (${mem_used}M)
free: `expr $mem_free / 1000`G (${mem_free}M)
shared: `expr $mem_shared / 1000`G (${mem_shared}M)
buffer: `expr $mem_buff / 1000`G (${mem_buff}M)
available: `expr $mem_cached / 1000`G (${mem_cached}M)">>/home/zpz/mail/memory.txt
echo "rate:${mem_rate}%(换算成G为单位时均以1000计算,而非1024)">>/home/zpz/mail/memory.txt
fi
else
#如果以上条件都不成立就将memory.txt文件清零并将各变量赋空值
mem_opop=" "
mem_kk=" "
fi
#监控磁盘使用率,超过80%就发邮件
DEV=`df -hP | grep '^/dev/*' | awk -F ' ' '{print $1}'|sort`
for i in $DEV
do
disk_dev=`df -Ph | grep $i | awk '{print $1}'`
disk_size=`df -Ph | grep $i | awk '{print $2}'`
disk_used=`df -Ph | grep $i | awk '{print $3}'`
disk_free=`df -Ph | grep $i | awk '{print $4}'`
disk_rate=`df -Ph | grep $i | awk '{print $5}'`
disk_mount=`df -Ph| grep $i | awk '{print $6}'`
#定义磁盘利用率
disk_F=`echo $disk_rate | awk -F% '{print $1}'`
if [ $disk_F -ge 40 ];then
echo " ">>/home/zpz/mail/memory.txt
echo " ">>/home/zpz/mail/memory.txt
echo "10分钟前硬盘使用率: $disk_rate">>/home/zpz/mail/memory.txt
for p in $DEV;do echo -e "$p:\tsize:$disk_size\tused:$disk_used\tfree:$disk_free\tmount: $disk_mount";done>>/home/zpz/mail/memory.txt
stop_time
disk_dev1=`df -Ph | grep $i | awk '{print $1}'`
disk_size1=`df -Ph | grep $i | awk '{print $2}'`
disk_used1=`df -Ph | grep $i | awk '{print $3}'`
disk_free1=`df -Ph | grep $i | awk '{print $4}'`
disk_rate1=`df -Ph | grep $i | awk '{print $5}'`
disk_mount1=`df -Ph | grep $i | awk '{print $6}'`
disk_FF=`echo $disk_rate1 | awk -F% '{print $1}'`
#判断2次统计的硬盘使用率
if [ $disk_FF -ge $disk_F ];then
echo " ">>/home/zpz/mail/memory.txt
echo "当前硬盘使用率: $disk_rate1">>/home/zpz/mail/memory.txt
for H in $DEV;do echo -e "$H:\tsize:$disk_size1\tused:$disk_used1\tfree:$disk_free1\tmount: $disk_mount1";done >>/home/zpz/mail/memory.txt
else
echo " ">/home/zpz/mail/memory.txt
fi
fi
done
if [[ $mem_rate1 -ge 70 || $disk_FF -ge 80 ]];then
mail -v -s "44服务器的硬盘警告" xxxxx@126.com</home/zpz/mail/memory.txt
echo " ">/home/zpz/mail/memory.txt
fi
QQ群:264092835 欢迎你的加入
该文章为原创,转载请注明原出处 谢谢合作
内容总结
以上是互联网集市为您收集整理的linux性能监控 + Sendmail 发邮件全部内容,希望文章能够帮你解决linux性能监控 + Sendmail 发邮件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。