全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

教你用10行bash shell脚本轻松监控Linux

发布时间:2022-10-09 09:49:54
发布人:syq

  监控我们的环境对于服务器运维来说至关重要,尤其是在部署新的应用程序时。如今,公司每天都使用开源解决方案来监控系统资源。但是,当出于测试的目的来监控一定时间时,bash 脚本会派上用场。

Redis分布式锁

  在本教程中,我们将编写一个 bash shell 脚本,它将输出一个三列表,来显示我们机器上的内存、磁盘和 CPU 的百分比。让我们开始吧!

  该脚本基本上由三个主要部分组成:

  1.监控内存:

5

  free -m 是用于显示已使用和空闲内存的命令,输出如下:

6

  但是,我们需要从上面的输出中获取第二行的总内存和已用内存。我们可以使用 AWK 来从给定输出中提取数据。

  AWK 是一种用于文本处理和数据提取的编程语言。它是大多数 UNIX 系统的标准功能。awk ‘NR==2’ 从第二行提取数据。和2 分别充当已用量和总量。

  监控磁盘

7

  第二个命令输出使用的磁盘百分比。df -h 输出与磁盘使用情况和分区相关的数据。

8

  awk 输出字段数。但是,NF=="/" 将转到包含字符 / 的那一行。$5 将从该行中选择第 5 个字段。这可确保该命令能够提取正确的磁盘使用百分比(在我们的示例中为 %7)。

  监控 CPU

9

  top -bn1 命令将只执行一次 top 命令(n1 = 一次迭代),当我们想在 bash 脚本中使用 top 或将其数据输出到文件时使用可以使用 -b 选项。

  grep load 将输出包含字符串 load 的行。$(NF-2) 将计算该行上的字段数并减 2。

10

  在浏览完 bash 脚本的基本部分之后,我们需要将这些命令保存到变量 MEMORY、DISK 和 CPU 中:

11

  我们需要脚本运行一段时间(比如,一个小时)。为了做到这一点,我们需要使用 while do 循环,每次循环后延迟 x 秒(取决于您的测试):

12

  为了在一定时间内运行一次循环,我们可以定义一个变量 $end,它从 bash 脚本开始的时间开始计算当前的秒数,因此是 SECONDS,并在当前秒数上加上一个数字。所以一个小时就是 3600 秒。

  上述代码片段的第二行指出,只要(当前秒数)小于SECONDS+3600,while 循环就会继续执行。因此,我们定义了循环的开始时间和结束时间,以及将每个循环暂停 5 秒的睡眠时间。循环内部是每 5 秒将那三个变量分配一次新值,以及将输出三个资源使用情况的 echo "DISK$CPU"。

  完整代码如下:

13

  上面的代码将输出以下内容:

14

  您始终可以将数据输出到日志文件:

15

  Stress 测试

16

  由于机器上几乎没有任何负载,我们可以使用 stress 来使 CPU 和内存负载一段时间。

  使用以下命令安装(在 CentOS 上):

17

  现在我们可以使用命令 stress 来负载我们的机器。例如,通过指定两个 CPU 密集型进程、一个 I/O 密集型进程和一个内存分配器进程,对系统施加 4 个平均负载,如下所示。以下压力测试将运行 1 小时。

18

  关于如何为所有系统管理员创建一个非常容易且有用的 bash 脚本的教程到此结束。

相关文章

flutter和uni-app在应用层面有什么区别?

flutter和uni-app在应用层面有什么区别?

2023-10-14
Flutter和 qt的区别都有什么?

Flutter和 qt的区别都有什么?

2023-10-14
rnn和lstm中batchsize和timestep的区别是什么?

rnn和lstm中batchsize和timestep的区别是什么?

2023-10-14
什么是OA服务器?

什么是OA服务器?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取