巡检脚本概述
此巡检脚本为监控主机磁盘是用情况撰写的脚本,脚本运后自摘取主机名称、IP、磁盘使用量、内存使用量。并具备自动报警功能。
巡检脚本本内容
#!/bin/bash
# 使用awk和grep过滤切割关键字段
MEMORY=`ps -eo pid,%cpu,%mem,etime,lstart,comm | grep docker | awk '{print $3}'`
disk=`df -Th / | awk 'NR==2' | awk '{print $6}'| sed 's/.$//'`
ip=`ifconfig ens33 | awk NR==2 | awk '{print $2}'`
pof=`mpstat | tail -1 | awk '{print $12}'`
internal=`awk "BEGIN {print 100-$pof}"`
echo "主机名称:`hostname`"
echo "主机IP:$ip"
echo "您磁盘现在使用情况:$disk%"
echo "内存使用情况:$internal"
if [ $disk -gt 90 ];then
echo "磁盘空间已严重不足" > /root/test.txt
elif [ $disk -gt 80 ];then
echo "磁盘空间不足百分之20" > /root/test.txt
elif [ $disk -gt 70 ];then
echo "磁盘空间不足百分之30" > /root/test.txt
elif [ $disk -gt 60 ];then
echo "磁盘空间不足百分之40" > /root/test.txt
elif [ $disk -gt 50 ];then
echo "磁盘空间不足百分之50" > /root/test.txt
fi
# 发送邮件报警
if [ $disk -gt 50 ];then
echo "$ip `cat /root/test.txt`" | mail -s "主机监控" 邮箱@163.com
fi
设置邮件报警方法
第一步:下载邮件
yum install mailx安装过程中有提示,直接回车即可。
第二步:进入etc / mail.rc vim etc / mail.rc
设置一些参数,此处用163邮箱,先注册163邮箱,并进入设置里设置勾选POP3 / SMTP与IMAP / SMTP选项,并设置自己的授权码。
解释参数:set from = 163邮箱地址
设置smtp = smtp.163.com#此处不做改变
设置smtp-auth-user = 163邮箱地址#与从一致即可设置
设置smtp-auth-password =设置的授权码
设置smtp-auth =登录#默认登录即可
WQ保存退出
值得注意的是配置时“=”两侧不要有空格
同时在163邮箱设置白名单,以防不测
最后一步:测试
echo“测试文字”| mail -s“邮件主题”邮箱@qq.com(收件地址)
脚本的实现思路
使用ps、df、ifconfig、mpstat命令把想要的内容显示出来,在使用grep过滤出关键的子,在使用awk切割出关键字段。 有时显示的内容不是自己想看到的效果,可以用awk进行运算。awk对于小数都可运算。