需求:
1、编写sysmon.sh脚本
(1)使用df命令提取出根分区的磁盘占用率,赋值给变量DUG。
(2)使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG。
(3)使用free命令提取出内存使用率,赋值给变量MUG。
(4)判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件。
(5)判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送。
参考脚本:
#!/bin/bash #脚本练习1 #第一步、使用df命令提取出根分区的磁盘占用率,赋值给变量DUG DUG=`df -h |awk 'NR==2{print}'|awk '{print $5}'|awk -F '%' '{print $1}'` #第二步、使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG #(1)安装sysstat yum install wget make gcc gcc-c++ glibc libstdc++-devel mailx -y wget http://pagesperso-orange.fr/sebastien.godard/sysstat-11.0.0.tar.gz tar -xvf sysstat-11.0.0.tar.gz cd sysstat-11.0.0/ ./configure make make install mpstat -V #判断sysstat软件是否安装成功 if [ $? = 0 ];then echo "恭喜你sysstat 软件安装成功!" else exit fi #(2)提取CPU使用率 CUG=`mpstat|grep 'all'|awk '{print $3}'` #第三步、使用free命令提取出内存使用率,赋值给变量MUG MUG=`free -m|grep 'Mem'|awk '{print $3}'` #第四步、判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件 #1.定义阈值 if [ $DUG > 80 ];then echo "at `date`磁盘占用率已经达到${DUG}%,请及时清理" > /tmp/alert.txt elif [ $CUG > 50 ];then echo "at `date`CPU使用率达到${DUG}%,请及时查看" >> /tmp/alert.txt #第五步、判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送 if [ -e '/tmp/alert.txt' ];then mail -s '系统问题' 1557034472@qq.com < /tmp/alert.txt echo '' >/tmp/alert.txt #清空告警文件 fi