6.{Linux}shell脚本应用(中)
Posted 运维心动力
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.{Linux}shell脚本应用(中)相关的知识,希望对你有一定的参考价值。
What : 所学的计算机知识点是什么?
wc -l(统计)例:unum'who | wc -l'
[ 条件表达式 ]中间可以加文件测试等。
文件测试:-d测试是否为目录,-e目录或文件是否存在,-f测试是否为文件,-r测试是否有读取权限,-w测试是否有写入权限,-x测试是否有执行权限。
整数值比较:-eq前一个等于后一个。-ne前一个不等于后一个,-gt前一个大于后一个,-lt前一个小于后一个,-le前一个小于等于后一个,-ge前一个大于等于后一个。例:[ $unnm -gt 5 ] && echo "123"
字符串比较:= (前字符串等于后字符串),!=(前字符串不等于后字符串),-z(检测字符串是否为空)。例:[ $li != "123" ] && echo"not 123"
逻辑测试:&&,而且。||,或者。!逻辑否。
if语句:
单分支: 双分支: 多分支:
if [ 条件测试] if [ 条件测试 ] if [ 条件测试 ]
then then then
命令序列 命令序列 命令序列
fi else elif [ 条件测试2]
命令序列 then
fi 命令序列
else
命令序列
if
Why :为什么要引入这个知识点?解决什么问题?
学习shell脚本
How :如何使用这个知识点?
详情见下方实验。
Where :这个知识点用于何处?
学习shell脚本
实验要求:
1、编写sysmon.sh脚本
(1)使用df命令提取出根分区的磁盘占用率,赋值给变量DUG。
(2)使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG。
(3)使用free命令提取出内存使用率,赋值给变量MUG。
(4)判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件。
(5)判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送。
实验过程:
[root@localhost ~]# vi /root/sysmon.sh
#!/bin/bash
# 提取性能监控指标(磁盘占用、CPU使用、内存使用)
①DUG=$(df -h | grep "/$" | awk '{print $4}' | awk -F% '{print $1}')
②CUG=$(expr 100 - $(mpstat | tail -1 | awk '{print $10}' | awk -F. '{print $1}'))
③MUG=$(expr $(free | grep "cache:" | awk '{print $3}') \* 100 / $(free | grep "Mem:" | awk '{print $2}'))
# 设置告警日志文件、告警邮箱
ALOG="/tmp/alert.txt"
AMAIL="root"
④# 判断是否记录告警
if [ $DUG -gt 90 ]
then
echo "磁盘占用率:$DUG %" >> $ALOG
fi
if [ $CUG -gt 80 ]
then
echo "CPU使用率:$CUG %" >> $ALOG
fi
if [ $MUG -gt 90 ]
then
echo "内存使用率:$MUG %" >> $ALOG
fi
⑤# 判断是否发送告警邮件,最后删除告警日志文件
if [ -f $ALOG ]
then
cat $ALOG | mail -s "Host Alert" $AMAIL
rm -rf $ALOG
fi
[root@localhost ~]# chmod +x /root/sysmon.sh
以上是关于6.{Linux}shell脚本应用(中)的主要内容,如果未能解决你的问题,请参考以下文章