Loading [MathJax]/jax/output/CommonHTML/jax.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Linux_Shell 脚本编程学习笔记四、监控系统内存并报警企业案例脚本】

【Linux_Shell 脚本编程学习笔记四、监控系统内存并报警企业案例脚本】

作者头像
梅花
发布于 2020-09-28 02:54:15
发布于 2020-09-28 02:54:15
66100
代码可运行
举报
运行总次数:0
代码可运行

    前置知识:awk

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
       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 简单实用小案例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    ls -lh | awk '{print $1}'

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

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

    脚本要求:

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/sh
free=$(free -m | awk 'NR==2{print $4}')
# 判断当前内存是否小于 100 
if [ $free -lt 100 ];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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-07-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
awk命令结构/内置变量/获取文本某行或某列
一个awk脚本通常由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块3部分组成,这三个部分是可选的。任意一个部分都可以不出现在脚本中,脚本通常是被单引号或双引号中,例如:
yiduwangkai
2019/09/17
2.4K0
linux 文本工具使用小技巧
awk 通常表达式awk 'begin{ commands } pattern{ commands } end{ commands }',其中 begin 部分和 end 部分可以省略,即awk '{代码}',比如最简单的打印第一列awk '{print $1}'就是这样。 运行原理:
机械视角
2019/12/12
1.6K0
Linux系统开发: 学习linux三剑客(awk、sed、grep)(下)
这篇文章是 <Linux开发: 学习linux三剑客(awk、sed、grep)(上)>的续集。
DS小龙哥
2022/01/27
5.1K0
Linux系统开发: 学习linux三剑客(awk、sed、grep)(下)
【linux命令讲解大全】049.深入了解awk:文本和数据处理的编程语言
awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。
全栈若城
2024/03/02
1880
AWK 入门简明教程
AWK 脚本的结构 1 awk ' BEGIN{ print "start" } pattern { commands } END{ print "end" } file awk 脚本通常由3部分组成。 BEGIN , END 和带模式匹配选项的常见语句块。这3个部分都是可 选项,在脚本中可省略任意部分。 AWK 脚本的执行 一、在命令行中执行 AWK 脚本 AWK 脚本包含在单引号之间 1 awk 'BEGIN { statements } { statements } END { end state
KangVcar
2018/07/06
1.2K0
shell脚本编程神器之awk语法案例详解
假设存在一个文件 emp.data,其中包含员工的姓名、薪资(美元/小时)以及小时数,一个员工一行数据,其内容如下:
青山师
2023/05/05
9660
shell脚本编程神器之awk语法案例详解
文本处理三剑客之—awk
    AWK是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
用户4877748
2020/07/22
1.3K0
提升awk技能的两个教程【译】
原文:https://opensource.com/article/19/10/advanced-awk
程序员架构进阶
2021/03/05
4.9K0
Linux awk统计日志中出现过的IP(或出现次数最多的N个IP)
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
全栈程序员站长
2022/07/18
1.7K0
Linux awk统计日志中出现过的IP(或出现次数最多的N个IP)
awk 简单使用教程
之前我一直使用 Python 来处理 Linux 的一些文本,但是对于一些大文本的简单处理,Python 麻烦而且慢,于是现在慢慢改用awk来处理,很多时候一行命令就能解决,因此非常方便。针对使用是过程的一些心得,写个小小的教程,awk太强大了,需要慢慢长时间的学习,我尽量保持更新这个教程吧。
泽霖
2023/11/28
4210
Linux三大剑客之awk
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢
耕耘实录
2018/12/20
1.1K0
技能篇:awk教程-linux命令
AWK是一门解释型的编程语言。用于文本处理,它的名字来源于它的三位作者的姓氏:Alfred Aho, Peter Weinberger 和 Brian Kernighan
潜行前行
2021/06/25
2K0
技能篇:awk教程-linux命令
技术栈系列基础篇7-linux常见命令
如果用bash -c 那么bash 会从第一个非选项参数后面的字符串中读取命令,如果字符串有多个空格,第一个空格前面的字符串是要执行的命令,也就是$0, 后面的是参数,即$1,$2….
AndreKzWu
2022/09/19
8880
每天一个 Linux 命令(4):awk
Awk pattern scanning and processing language,对文本和数据进行处理。
民工哥
2020/12/28
8600
Shell 编程(六):文本三剑客之 Awk
awk 是一个文本处理工具,通常用于处理数据并生成结果报告,awk的命名是它的创始人 Alfred Aho、 Peter Weinberger 和 Brian Kernighan 姓氏的首个字母组成的。
陈大剩博客
2023/03/06
1.3K0
Shell 编程(六):文本三剑客之 Awk
Shell 编程(六):文本三剑客之 Awk
awk 是一个文本处理工具,通常用于处理数据并生成结果报告,awk的命名是它的创始人 Alfred Aho、 Peter Weinberger 和 Brian Kernighan 姓氏的首个字母组成的。
高老师
2023/09/18
4550
Shell 编程(六):文本三剑客之 Awk
Linux三剑客命令之Awk
Awk pattern scanning and processing language
民工哥
2020/09/16
1.2K0
AWK 深入浅出教程
---- 概述 awk是一门解释性文本处理语言,它在文本处理领域中非常强大和方便。awk有三个主要的类型是: AWK - 原先来源于 AT & T 实验室的的AWK. NAWK - AT & T 实验
吕海峰
2018/04/03
1.5K0
AWK 深入浅出教程
Linux之awk命令详解(二)
上一篇文章我们简单举了几个例子了解了一下awk命令的基本语法,这里,再次贴出来这个命令的基本语法,如下:
AsiaYe
2019/11/06
2.8K1
shell脚本扩展「建议收藏」
正则表达式(或称Regular Expression,简称RE)就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。
全栈程序员站长
2022/07/20
6.2K0
shell脚本扩展「建议收藏」
相关推荐
awk命令结构/内置变量/获取文本某行或某列
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档