shell脚本3
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本3相关的知识,希望对你有一定的参考价值。
# 实验案例一、
**编写sysmon.sh脚本
(1)使用df命令提取出根分区的磁盘占用率,赋值给变量DUG。
(2)使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG。
(3)使用free命令提取出内存使用率,赋值给变量MUG。
(4)判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件。
(5)判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送。
[[email protected] ~]# vi /root/sysmon.sh
#!/bin/bash
#提取性能监控指标(磁盘占用、CPU使用、内存使用)
DUG=$(df -hT | grep "/$" | awk ‘{print $6}‘ |awk -F% ‘{print $1}‘)
CUG=$(expr 100 - $(mpstat | tail -1 | awk ‘{print $10}‘ | awk -F. ‘{print $1}‘))
MUG=$(expr $(free | grep "Mem" | awk ‘{print $3}‘) * 100 / $(free | grep "Mem:" | awk ‘{print $2}‘))
#设置告警日志文件、告警邮箱
ALOG="/tmp/alert.txt"
AMAIL="root"
#判断是否记录告警
if [ $DUG -gt 1 ]
then
echo "磁盘占用率:$DUG %" >> $ALOG
fi
if [ $CUG -gt 2 ]
then
echo "CPU使用率:$CUG %" >> $ALOG
fi
if [ $MUG -gt 3 ]
then
echo "内存使用率:$MUG %" >> $ALOG
fi
#断是否发送告警邮件,最后删除告警日志文件
if [ -f $ALOG ]
then
cat $ALOG | mail -s "Host Alert" $AMAIL
rm -rf $ALOG
fi
[[email protected] ~]# chmod +x /root/sysmon.sh
***测试sysmon.sh脚本的执行情况***
(1)确认有可用的邮件服务器(如Postfix、Sendmail等),然后调低监控阈值,执行sysmon.sh脚本进行测试。
[[email protected] ~]# /root/sysmon.sh
(2)查收[email protected]的邮箱,确认告警邮件内容。
[[email protected] ~]$ cat /var/spool/mail/root
X-Original-To: [email protected]
……
From: [email protected] (root)
内存使用率:91 %
**设置crontab计划任务**
(1)确认系统服务crond已经运行。
[[email protected] ~]# systemctl status crond
crond (pid 5839) 正在运行...
(2)添加crontab计划任务配置,每半小时调用一次sysmon.sh脚本程序。
[[email protected] ~]# crontab -e
08 * * * /root/sysmon.sh
**实验案例二:判断内核版本是否大于3.4**
[[email protected] ~]# vi chkversion.sh
#!/bin/bash
Mnum=$(uname -r | awk -F. ‘{print $1}‘)
Snum=$(uname -r | awk -F. ‘{print $2}‘)
if [ $Mnum -gt 3 ]
then
echo "内核版本为:$Mnum.$Snum"
elif [ $Mnum -eq 3 ] && [ $Snum -gt 4 ]
then
echo "内核版本为:$Mnum.$Snum"
else
echo "内核版本太低,无法继续!"
fi
[[email protected] ~]# chmod +x chkversion.sh
[[email protected] ~]# ./chkversion.sh
内核版本为:3.10
实验案例三、判断判断rpm包sysstat是否安装,如果没有安装则自动安装
[[email protected] ~]# vi chkinstall.sh
#!/bin/bash
rpm -q sysstat &> /dev/null
if [ $? -eq 0 ]
then
echo "已安装 ‘rpm -q sysstat‘"
else
echo "未安装,尝试自动安装"
RHEL_DIR="/media/Packages/"
if [ -d $RHEL_DIR ]
then
cd $RHEL_DIR
rpm -ivh sysstat-*.rpm && echo "安装完成。"
else
echo "错误:无法访问光盘目录:$RHEL_DIR"
fi
fi
[[email protected] ~]# chmod +x chkinstall.sh
[[email protected] ~]# ./chkinstall.sh //未安装时的情况
未安装,尝试自动安装
Preparing... ########################################### [100%]
1:sysstat ########################################### [100%]
安装完成。
[[email protected] ~]# ./chkinstall.sh //已安装时的情况
已安装 sysstat-7.0.2-3.el5
以上是关于shell脚本3的主要内容,如果未能解决你的问题,请参考以下文章