首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

6.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 '' 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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180129G133YE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券