需求:

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