zoukankan      html  css  js  c++  java
  • Shell脚本 硬盘监控

    用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键上面的那个键,要特别留心)      
    例子:
    A=`ls -l` 把ls -l的结果赋给A ls -l 作为命令来执行 IP=`ifconfig |grep -w "broadcast"|awk '{print $2}'`        把一系列命令结果赋值给IP
     
    2    if  命令.
    f 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:
    • if ……then... fi 语句;
    • if ……then... else ... fi 语句;
    • if ...then…… elif ...then……elif ...then…… else ... fi 语句。

    1) if ... else 语句

    if ... else 语句的语法:
    if [ expression ]
    then
       Statement(s) to be executed if expression is true
    fi
    如果 expression 返回 true,then 后边的语句将会被执行;如果返回 false,不会执行任何语句。

    最后必须以 fi 来结尾闭合 if,fi 就是 if 倒过来拼写,后面也会遇见。

    注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误。

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

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

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

    if ... elif ... fi 语句可以对多个条件进行判断,语法为:
    if [ expression 1 ]
    then
       Statement(s) to be executed if expression 1 is true
    elif [ expression 2 ]
    then
       Statement(s) to be executed if expression 2 is true
    elif [ expression 3 ]
    then
       Statement(s) to be executed if expression 3 is true
    else
       Statement(s) to be executed if no expression is true
    fi
    哪一个 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 — 检查目录是否存在 

  • 相关阅读:
    多个类定义attr属性重复的问题:Attribute "xxx" has already been defined
    好用的批量改名工具——文件批量改名工具V2.0 绿色版
    得到ImageView中drawable显示的区域的计算方法
    得到view坐标的各种方法
    实现类似于QQ空间相册的点击图片放大,再点后缩小回原来位置
    Material Designer的低版本兼容实现(五)—— ActivityOptionsCompat
    Android 自带图标库 android.R.drawable
    解决 Attempting to destroy the window while drawing!
    解决Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 4
    Material Designer的低版本兼容实现(四)—— ToolBar
  • 原文地址:https://www.cnblogs.com/centos2017/p/7896751.html
Copyright © 2011-2022 走看看