用shell 写了一个硬盘监控的小程序

 
#!/bin/bash
MAX=95
EMAIL=zonghua@iyunshu.com
PART=sda1
 
IP=`ifconfig |grep -w "broadcast"|awk '{print $2}'`
 
use=`df -h | grep $PART | awk '{print $5}'| cut -d'%' -f1`
 
if [ $use -ge $MAX ]; then
 
echo "$IP have  $use%" | mail -s "Running out of disk space" $EMAIL
 
fi
 
 
 
 
 
使用了一下命令
1.    " ` "     它也被称为反引号  后引号(backquotes)或是斜引号(backticks).
命令替换.`command` 结构  使字符(`) 执行结果能赋值给一个变量。
        (这个字符不是单引号,而是在标准美国键盘上的ESC键下面,在字符1左边,在TAB键上面的那个键,要特别留心)      
  1. 例子:
    A=`ls -l` ls -l的结果赋给A ls -l 作为命令来执行
  2. IP=`ifconfig |grep -w "broadcast"|awk '{print $2}'`        把一系列命令结果赋值给IP
  1.  

2    if  命令.

  1. f 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:
  • if ……then... fi 语句;
  • if ……then... else ... fi 语句;
  • if ...then…… elif ...then……elif ...then…… else ... fi 语句。

1) if ... else 语句

  1. if ... else 语句的语法:
  1. if [ expression ]
  2. then
  3. Statement(s) to be executed if expression is true
  4. fi
  1. 如果 expression 返回 truethen 后边的语句将会被执行;如果返回 false,不会执行任何语句。
  2.  
  3. 最后必须以 fi 来结尾闭合 iffi 就是 if 倒过来拼写,后面也会遇见。
  4.  
  5. 注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误。

2) if ... else ... fi 语句

  1. if ... else ... fi 语句的语法:
  1. if [ expression ]
  2. then
  3. Statement(s) to be executed if expression is true
  4. else
  5. Statement(s) to be executed if expression is not true
  6. fi
  1. 如果 expression 返回 true,那么 then 后边的语句将会被执行;否则,执行 else 后边的语句。

) if ... elif ... fi 语句

  1. if ... elif ... fi 语句可以对多个条件进行判断,语法为:
  1. if [ expression 1 ]
  2. then
  3. Statement(s) to be executed if expression 1 is true
  4. elif [ expression 2 ]
  5. then
  6. Statement(s) to be executed if expression 2 is true
  7. elif [ expression 3 ]
  8. then
  9. Statement(s) to be executed if expression 3 is true
  10. else
  11. Statement(s) to be executed if no expression is true
  12. fi
  1. 哪一个 expression 的值为 true,就执行哪个 expression 后面的语句;如果都为 false,那么不执行任何语句。

3.数值比较符号

基本的if条件命令选项有: - eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])

-ne —比较两个参数是否不相等 
-lt —参数1是否小于参数2 
-le —参数1是否小于等于参数2 
-gt —参数1是否大于参数2 
-ge —参数1是否大于等于参数2 
-f — 检查某文件是否存在(例如,if [ -f "filename" ]) 
-d — 检查目录是否存在

Shell脚本 硬盘监控的更多相关文章

  1. shell脚本实现监控shell脚本的执行流程及变量的值

    这篇文章主要介绍了shell脚本实现监控shell脚本的执行流程及变量的值本文使用shell完成对执行过程中条件语句中的变量的变化的监控和整个程序的执行流程的观察功能,需要的朋友可以参考下 很多时候, ...

  2. CentOS下编写shell脚本来监控MySQL主从复制的教程

    这篇文章主要介绍了在CentOS系统下编写shell脚本来监控主从复制的教程,文中举了两个发现故障后再次执行复制命令的例子,需要的朋友可以参考下 目的:定时监控MySQL主从数据库是否同步,如果不同步 ...

  3. Tomcat集群 Nginx负载均衡 shell脚本实时监控Nginx

    第一步,安装Tomcat 系统环境:Centos7 第1步:下载tomcat安装包 tomcat官网:https://tomcat.apache.org/ 第2步:安装包上传至linux中 第3步:下 ...

  4. Git学习-->如何通过Shell脚本实现 监控Gitlab备份整个过程并且通过邮件通知得到备份结果?

    一.背景 Git学习–>如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器? http://blog.csdn.net/ouyang_peng/article/details/ ...

  5. 关于nagios系统下使用shell脚本自定义监控插件的编写

    在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控.检测功能都是通过各种插件来完成的. 启动Nagios ...

  6. linux shell脚本: 自动监控网站状态并发送提醒邮件

    1.创建监控脚本:$ vi /alidata/shell/webcheck.sh #!/bin/sh weblist="/alidata/shell/weblist.txt" my ...

  7. 关于nagios系统下使用shell脚本自定义监控插件的编写以及没有实时监控图的问题

    关于nagios系统下shell自定义监控插件的编写.脚本规范以及没有实时监控图的问题的解决办法 在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主 ...

  8. shell脚本检测监控mysql的CPU占用率

    网站访问量大的时候mysql的压力就比较大,当mysql的CPU利用率超过300%的时候就不能提供服务了,近乎卡死状态,这时候最好的方法 就是重启mysql服务.由于这种事具有不可预见性,我们不知道什 ...

  9. shell脚本编写监控内存并发送邮件

    1.准备发送邮件的工具: #!/usr/bin/python# -*- coding: UTF-8 -*-import sysimport smtplibimport email.mime.multi ...

随机推荐

  1. 关于SDWebImage的一点小坑

        做项目遇到一个问题,是用sd加载图片,明明本地有图片,使用sd的内部方法也可以拿到那些个图片,但是就是加载缓慢,如果网络还行,网络加载图片都比加载本地图片快.而使用[[SDImageCache ...

  2. 线段相交的异或值 (线段树 or 优先队列)

    VVQ 最近迷上了线段这种东西 现在他手上有 n 条线段,他希望在其中找到两条有公共点的线段,使得他们的异或值最大. 定义线段的异或值为它们并的长度减他们交的长度 输入描述: 第一行包括一个正整数 n ...

  3. 使用eNSP配置QinQ

    参考链接:https://blog.csdn.net/alone_map/article/details/52217094 本文主要记录使用华为eNSP模拟器来实现配置QinQ,并对QinQ的报文进行 ...

  4. python条件与循环-循环

    1 while语句 while用于实现循环语句,通过判断条件是否为真,来决定是否继续执行. 1.1 一般语法 语法如下: while expression: suite_to_repeat 1.2 计 ...

  5. jmeter使用—远程分布式

    今天要说的是在远程服务器上使用多台服务器进行noGUI分布式使用jmeter压测. 1.首先准备几台服务器,服务器上都需要安装同一个版本的jmeter. 2.在服务器上启动jmeter的方式是在jme ...

  6. Centos7安装 Anaconda + jupyter notebook

    一.安装Anaconda 1 下载Anaconda安装脚本 为了避免漫长的等待,镜像源选择国内的清华镜像源,镜像源地址:https://mirrors.tuna.tsinghua.edu.cn/ana ...

  7. ios--->ios消息机制(NSNotification 和 NSNotificationCenter)

    问题的背景 IOS中委托模式和消息机制基本上开发中用到的比较多,一般最开始页面传值通过委托实现的比较多,类之间的传值用到的比较多,不过委托相对来说只能是一对一,比如说页面A跳转到页面B,页面的B的值改 ...

  8. string method 字符串常用方法讲解

    st = 'hello ketty ##$ \*'print(st.count('t'))# 输出‘t’的个数print(st.capitalize()) #Hello ketty 将首字母大写pri ...

  9. 最大似然估计、n阶矩、协方差(矩阵)、(多元)高斯分布 学习摘要

    最大似然估计 似然与概率 在统计学中,似然函数(likelihood function,通常简写为likelihood,似然)和概率(Probability)是两个不同的概念.概率是在特定环境下某件事 ...

  10. logback 发送邮件和自定义发送邮件;java类发送邮件

    使用logback发送邮件 需求: 1.报错发邮件,定位错误位置以尽快解决:(报错发送邮件) 2.某一项重要操作完成之后发送邮件:(自定义发送邮件) 没有接触过logback,怎么办? 没办法,硬着头 ...