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 '' awk -F% '')
CUG=$(expr 100 - $(mpstat tail -1 awk '' awk -F. ''))
MUG=$(expr $(free grep "cache:" awk '') \* 100 / $(free grep "Mem:" awk ''))
# 设置告警日志文件、告警邮箱
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
领取专属 10元无门槛券
私享最新 技术干货