前置知识:awk

    参考学习博客:https://www.cnblogs.com/bugingcode/p/8287914.html

     

       awk 'BEGIN{ commands } pattern{ commands } END{ commands }'

    

    第一步:运行BEGIN{ commands }语句块中的语句。

    第二步:从文件或标准输入(stdin)读取一行。然后运行pattern{ commands }语句块,它逐行扫描文件,从第一行到最后一行反复这个过程。直到文件所有被读取完成。

    第三步:当读至输入流末尾时。运行END{ commands }语句块。

    BEGIN语句块在awk開始从输入流中读取行之前被运行,这是一个可选的语句块,比方变量初始化、打印输出表格的表头等语句通常能够写在BEGIN语句块中。

    END语句块在awk从输入流中读取全然部的行之后即被运行。比方打印全部行的分析结果这类信息汇总都是在END语句块中完毕,它也是一个可选语句块。

    pattern语句块中的通用命令是最重要的部分,它也是可选的。假设没有提供pattern语句块,则默认运行{ print },即打印每个读取到的行。awk读取的每一行都会运行该语句块。

    这三个部分缺少任何一部分都可以。

    awk 简单实用小案例:

    

    ls -lh | awk '{print $1}'

   

   

在这里awk 后面没有BEGIN和END,跟着的是pattern,也就是每一行都会经过这个命令,在awk中$n,表示第几列,在这里表示打印每一行的第一列。

  • $0 当前记录(这个变量中存放着整个行的内容)
  • $1~$n 当前记录的第n个字段,字段间由FS分隔
  • FS 输入字段分隔符 默认是空格或Tab
  • NF 当前记录中的字段个数,就是有多少列
  • NR 已经读出的记录数,就是行号,从1开始,如果有多个文件话,这个值也是不断累加中。
  • FNR 当前记录数,与NR不同的是,这个值会是各个文件自己的行号
  • RS 输入的记录分隔符, 默认为换行符
  • OFS 输出字段分隔符, 默认也是空格
  • ORS 输出的记录分隔符,默认为换行符
  • FILENAME 当前输入文件的名字

    脚本要求:

              开发shell 脚本判断系统神域内存大小,如果低于100 M 就邮件报警给管理员,并且加入系统定时任务 每3 分钟执行一次检查

       

#!/bin/sh
free=$(free -m | awk 'NR==2{print $4}')
# 判断当前内存是否小于
if [ $free -lt ];then
echo " 当前内存不足,可用内存大小为:$free(M)"
else
echo "$free .当前内存充足"
fi

    然后在配置上定时任务 和发送邮件就完成了

    

    第二步:配置邮件
      echo set from=adm1nistrator@163.com smtp=smtp.163.com smtp-auth-user=572891887 smtp-auth-password=darker520. smtp-auth=login
    >/etc/mail.rc

    第三步: 定时任务
      tail -2 /var/spool/cron/root

      

最新文章

  1. 分布式事务二阶提交DTS系统
  2. IT行业果真跳槽快吗?
  3. 学习ASP.NET MVC(五)——我的第一个ASP.NET MVC CURD页面
  4. 阿里百川IMSDK--自定义群聊界面
  5. angular 倒计时
  6. sap 中怎样把非限制库存转为销售订单库存?
  7. display:inline-block 在IE6中实现{转}
  8. php 中cookie和session的用法比较
  9. 将现有Ubuntu系统做成LiveCD
  10. jquery.scrollTo-min.js
  11. codevs1906 最长递增子序列问题
  12. 类和对象:拾遗 - 零基础入门学习Python039
  13. maven常见问题汇总
  14. iOS ZBar扫码简单实现
  15. Nodejs进阶:MD5入门介绍及crypto模块的应用
  16. java面试扫盲:对象初始化顺序(真的未必能答对)
  17. github配置ssh密钥的方法
  18. c#十进制转二进制算法 和字符串反转算法
  19. Python函数系列之eval()
  20. fastJson注解@JSONField使用的一个实例

热门文章

  1. Hough直线and圆环变换(如何检测直线、圆环)
  2. 开始新建AEM站点-周末教程
  3. 最小二乘拟合(scipy实现)
  4. MJJ玩磁铁
  5. 86.QuerySet API常用的方法详解:get方法
  6. 2018.11.2JavaScript随笔
  7. textarea高度自适应解决方法
  8. Java 实现 栈
  9. 一个理解基本RCNN的简单例子
  10. \_\_setitem\_\_和\_\_getitem和\_\_delitem__