Linux下自动化监控内存、存储空间!

距离上一次更新文章已经过去一段时间了,小编在这段时间因为一些琐事,加上身体生病不能及时更新文章,今天身体逐渐恢复就急忙来更新文章,今天思梦给大家带来的就是如何自动化监控我们的服务器一些基本的配置来保证我们应用能更好的运行以及做好性能瓶颈的预测!

今天主要内容包含,Linux的基础Shell编程的流程控制语句、cut的使用、grep的使用、以及awk的使用就可以实现我们所说的事情了!

以下所讲命令配合不同的参数有不同的用处,思梦给大家讲的都是一些为了实现所说功能的基础使用,小伙伴们如果想更好的使用以下命令可以参考文档去尝试配合不同参数来实验!

1)首先讲一下Shell的流程控制语句if,格式为

if command;then
    逻辑处理
else
    逻辑处理
fi

以上需要注意的就是if 最后的结尾要有一个fi

2)cut的基本使用,它可以用一些规律性的分隔符去获取某一行

for example : a:b 这样一行字符串,我们想获取a,那么我们可以这样写:cut -d ":" -f 1 它的意思为:使用:分割然后获取第一行,-d后面接的就是用什么符号分割,题目上是" : ",当然也能是" ; "等等,再后面的-f是我要打印输出的第几列

3)grep这个命令是强大的文本搜索工具,比如我们在一个文本里面想搜

for example:

我们先创建一个simengphp.txt,然后我们想获取一下simengphp这个字符串这行,我们可以这样操作

这样我们就可以获取到了simengphp这行

4)awk这个命令比较复杂,我们直接讲怎么使用,awk '{print $i}' 意思为默认使用空格(不规则的,cut要规则)或者制表符分割,后面配合例子来给大家讲解

好了基本的命令给大家讲完了,我们现在需要做的就是动手去写Shell脚本来去实现我们的功能了

首先第一个我们来写监控内存的脚本,我们还要使用一条命令:free -h

这样我们就看到了第一行内存使用的状况了:那我们想要的是free这列值来进行监控,那么我们就一步一步去获取这行的值

1)先展示出来所有的,然后我们通过管道以此交给下一条命令去处理

2)我们使用grep这个命令获取到我们想要的这样

3)通过awk命令我们获取到第四列然后并打印出来,$后面跟的是我们要打印的那列,print是和awk配合使用的,linux下print是不能单独使用的

4)后面再通过cut这个命令使用M来切分值,就能获取到了我们想要的值了

以上我们只是演示一下怎么获取我们想要的值,后面我们就直接开始写Shell脚本了:

我们运行一下返回的是else里面的值,因为我们刚才看到的是204,正好大于200因此没有报警操作!

那监控内存的功能大家看明白了后面监控硬盘空间的功能也是一样的,我直接给大家上脚本了

以上就是我们通过Shell脚本来实现自动化监控内存和使用硬盘空间的操作,然后我们通过定时任务去执行相应的脚本就可以了

脚本很粗糙,还有一些需要改进的地方,希望小伙伴们研究明白之后可以去优化一下然后去监控你们的服务器吧!

原文发布于微信公众号 - 思梦PHP(sm_php)

原文发表时间:2017-10-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

REST API URI的七大设计原则

在了解REST API URI设计的规则之前,让我们快速浏览一些我们将要讨论的术语。 URIs REST API使用统一资源标识符(URI)来寻址资源。在当今互...

1976
来自专栏Seebug漏洞平台

Vivotek 摄像头远程栈溢出漏洞分析及利用

作者:fenix@知道创宇404实验室 前 言 近日,Vivotek 旗下多款摄像头被曝出远程未授权栈溢出漏洞,攻击者发送特定数据可导致摄像头进程崩溃。 ...

3909
来自专栏我的博客

Mysql命令行操作教程【一】

今天突然有人问我会不会用mysql控制台建立数据库?我犹豫了,您呢? 于是就打算好好研究下mysql控制台命令。平时我们使用phpmyadmin或者navica...

3448
来自专栏Android干货

Android项目实战(四十六):Usb转串口通讯(CH34xUARTDriver)

5828
来自专栏Seebug漏洞平台

Vivotek 摄像头远程栈溢出漏洞分析及利用

近日,Vivotek 旗下多款摄像头被曝出远程未授权栈溢出漏洞,攻击者发送特定数据可导致摄像头进程崩溃。

4387
来自专栏后端之路

Sql注入

关于防范Sql注入也是安全测试老生常谈的问题。 首先说一下,攻击者之所以可以利用自己输入的数据来达到攻击网站的目的,原因就在于SQL语言作为一种解释型语言,它的...

1948
来自专栏java工会

Linux Shell从入门到删除根目录跑路指南

1545
来自专栏大魏分享(微信公众号:david-share)

干货:什么叫一个好的Ansible Playbook?

前言: 本文是我和李尧老师一起实验。李尧是红帽高级培训讲师,目前负责红帽中国区员工内部技术培训与认证。 一、什么是一个好的Ansible Playbook? ?...

5319
来自专栏noteless

-1-0 Java 简介 java是什么 java简单介绍

了解 Java 技术  https://www.java.com/zh_CN/about/

542
来自专栏C/C++基础

Linux命令(3)——sed命令

sed(Stream EDitor)是一种流文件编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern spac...

382

扫描关注云+社区