需求

时刻监控磁盘使用率,达到90%就开始告警。
告警可以使用:

  • 邮件告警
  • 钉钉告警
  • 微信告警

今天我们先来看最简单的V1的版本,实现简单需求,后面再增加功能

方法一:

awk 嵌套if循环

df -h|awk 'NR>1{if(int($5)>80){print $1" (mounted on "$6") used "$5" will not enough space!^m^"}else{print $1" (mounted on "$6") used "$5" is ok"}}

awk这种方法,难度适中,本身AWK就作为一种变成语言存在,所以相对学起来比较难。

一条命令搞定的方法,难倒一大片小伙伴。

我们尽可能使用更清晰的方法来搞定。

方法二

最普遍的写法:

[root@UIS-cloud1 ~]# cat  dftest.sh
#!/bin/bash
fnume=(`df -h |wc -l`-1)
for ((i=1;i<=fnume;i++))doif [ `df -h |awk 'NR>1{print int($5)}' |head -$i|tail -1` -gt 80 ];thenecho "`df -h |awk 'NR>1{print $1" (mounted on "$6") used "$5" will not enough space!^m^"}' |head -$i|tail -1`"elseecho "`df -h |awk 'NR>1{print $1" (mounted on "$6") used "$5" is ok"}' |head -$i|tail -1`"fidone

方法二要比方法一更容易理解,不习惯读长代码的小伙伴会觉得比较难。

你可以把方法二在拆分一下。 当然对于初学的小伙伴,还是建议如下的方法三:

方法三:

更简单的方法:

[root@itlaoxin41 ~]# cat df.sh
#!/bin/bash
## 先判断文件是否存在
if [ -f df.txt ];then
`cat /dev/null > df.txt`
fi
num=`df -h |awk '{print int($5)}'`
`df -h |awk '{print $1,int($5)}' |grep -v "文件系统" >>df.txt`
## 打印磁盘名称和磁盘使用率
for i in $num
do
if [ $i -gt 80 ];then
disk=`grep $i df.txt |awk '{print $1}'`
echo "$disk is not ok"fidone

方法三就比较容易了, 先判断df.txt是否存在,如果存在就清空,如果不存在在下面的脚本执行过程中,也会自己创建。

通过df -h 截取两方面的内容,一部分是磁盘名称,另一部分是磁盘使用率

后面可以为这个脚本增加邮件功能。

总结

一个脚本使用多种方法解决,可以很好的锻炼脚本能力。
另外在这个脚本的基础上,不断的加需求,直到成为一个最完美的脚本。

更多内容

没有基础的小伙伴可以参加视频课程:
https://edu.csdn.net/course/detail/38185

这套课程从零基础开始讲起,让你系统的掌握shell脚本的基础语法, 每个项目都值得深入去研究。

shell脚本实战-实现磁盘使用率超过90%就告警的三种方法v1版相关推荐

  1. java启动脚本指定jdk_使用指定的JDK启动IDEA的三种方法

    IDEA 64 位 版本对 JDK 版本有要求,不符合的 JDK 将无法启动. 很简单的一个问题,如何使用指定的 JDK 启动 IDEA? 上面这个问题很简单 但是在特殊环境下可能不太容易. 一.方法 ...

  2. 【ROS仿真实战】获取机器人在gazebo位置真值的三种方法(三)

    文章目录 前言 一. 使用ROS tf库 二. 使用Gazebo Model Plugin 三. 使用libgazebo_ros_p3d插件 四.总结 前言 在ROS和Gazebo中,获取机器人的位置 ...

  3. Linux下Shell脚本实战之监测磁盘空间

    Linux下Shell脚本实战之监测磁盘空间 一.脚本目的及要求 二.脚本内容 三.运行脚本 一.脚本目的及要求 (1) 监控/home下每各个用户目录的占用磁盘大小 (2) 监控/var/log下前 ...

  4. linux脚本对磁盘分区,shell 脚本实战笔记(4)--linux磁盘分区重新挂载

    背景: Hadoop的HDFS文件系统的挂载, 默认指定的文件目录是/mnt/disk{N}. 当运维人员, 不小心把磁盘挂载于其他目录, 比如/mnt/data, /mnt/disk01, /mnt ...

  5. linux磁盘使用情况脚本,技术|用 Linux Shell 脚本来监控磁盘使用情况并发送邮件...

    市场上有很多用来监控 Linux 系统的监控工具,当系统到达阀值后它将发送一封邮件.它监控所有的东西例如 CPU 利用率.内存利用率.交换空间利用率.磁盘空间利用率等等.然而,它更适合小环境和大环境. ...

  6. 循序渐进学运维-shell脚本实战专栏

    我是互联网老辛,关注我吧,给自己每天的进步找一个机会和理由,不要被无效信息淹没,免除知识焦虑 前言 shell脚本大家要做为重点来学习,shell写的好,可以不学Python,一样拿高薪: shell ...

  7. Liunx下的日志清理shell脚本实战之日志备份

    Liunx下的日志清理shell脚本实战 一.脚本实现功能以及要求 二.shell脚本内容 一.脚本实现功能以及要求 二.shell脚本内容 一.脚本实现功能以及要求 1.日志备份目录,将日志备份到/ ...

  8. shell 脚本实战 三

    摘自 shell脚本实战 第二版 第二章 改进用户命令 脚本14 格式化过长的行 要是够幸运的话,你所用的 Unix 系统中已经包含了 fmt 命令,如果你日常从事文本工作, 那么这个命令非常有用.不 ...

  9. linux 循环 cpu使用率脚本,监控CPU使用率的三种方法(shell脚本)

    监控CPU使用率的三种方法(shell脚本),供大家学习参考. 方法一: 复制代码 代码如下: #!/bin/sh #监控CPU使用率 #Written by Chameleon #Http://ch ...

最新文章

  1. 机器学习笔记06—术语解释
  2. nginx error_log 错误日志配置说明
  3. php配置默认index.php,Apache的vhost中配置默认访问入口index-test.php的方法(Yii)
  4. latex文档基础知识
  5. mac地址扫描源码_愤怒的IP扫描仪 一种快速的网络扫描工具
  6. jsf表单验证_JSF:在正确的阶段进行验证(了解生命周期)
  7. 有人利用两个SaltStack 漏洞攻击思科 VIRL-PE 基础设施
  8. true是不是python保留字_Python基本语法--关键字和保留字篇
  9. java字符拼成_Java字符拼成图片(image-ASCII)(非原创)
  10. tomcat 是什么
  11. 唐门暗器之私有云排名
  12. uc收藏导入html,uc浏览器的收藏网址如何导出方法
  13. C程序设计语言思维导图
  14. CodeForces - 1312E Array Shrinking
  15. springboot结合注解动态获取数据库表
  16. 海康摄像机如何用第三方域名/外网固定IP方式远程观看?--官方文档记录
  17. sqoop的java操作,总结归纳,含代码
  18. repeater控件 php,asp.net Repeater控件的说明及详细介绍及使用方法
  19. 2021年4月26日 星期一 三月十五 阴
  20. 假阳率(第一类错误)、假阴率,召回率、精确率

热门文章

  1. windows系统下SNMP协议获取系统内存、CPU实例代码
  2. 喜欢一个人和爱一个人的区别
  3. 交叉编译器的安装方法
  4. 摩客怎么设置安卓的dp_Android中dp和px之间进行转换
  5. vim文字处理器(一)基本命令
  6. 关于各种型号单片机delay函数不起作用问题的解决方法
  7. 【已阅】printf,echo,cat指令与输出重定向>,输入重定向<与追加重定向>>等
  8. C#自定义事件,监视变量变化
  9. 登峰造极之树——平衡树
  10. sql的ROWCOUNT的说明。