使用Bash脚本从SAR 报告中获取 CPU和内存使用情况

大多数 Linux 管理员使用 SAR 报告监控系统性能,因为它会收集一周的性能数据。但是,你可以通过更改 [neiqian]/etc/sysconfig/sysstat[/neiqian] 文件轻松地将其延长到四周。同样,这段时间可以延长一个月以上。如果超过 28,那么日志文件将放在多个目录中,每月一个。

将覆盖期延长至 28 天,请对/etc/sysconfig/sysstat 文件做以下更改。 编辑 sysstat 文件并将 HISTORY=7 更改为 HISTORY=28。 在本文中,我们添加了三个 bash 脚本,它们可以帮助你在一个地方轻松查看每个数据文件的平均值。 我们过去加过许多有用的 shell 脚本。如果你想查看它们,请进入下面的链接。

如何使用 shell 脚本自动化日常操作

这些脚本简单明了。出于测试目的,我们仅包括两个性能指标,即 CPU 和内存。你可以修改脚本中的其他性能指标以满足你的需求。

脚本 1:从 SAR 报告中获取平均 CPU 利用率的 Bash 脚本

该 bash 脚本从每个数据文件中收集 CPU 平均值并将其显示在一个页面上。 由于是月末,它显示了 2019 年 8 月的 28 天数据。

# vi /opt/scripts/sar-cpu-avg.sh#!/bin/shecho "+----------------------------------------------------------------------------------+"echo "|Average:         CPU     %user     %nice   %system   %iowait    %steal     %idle  |"echo "+----------------------------------------------------------------------------------+"for file in `ls -tr /var/log/sa/sa* | grep -v sar`
do
 dat=`sar -f $file | head -n 1 | awk '{print $4}'`
 echo -n $dat
 sar -f $file  | grep -i Average | sed "s/Average://"doneecho "+----------------------------------------------------------------------------------+"

运行脚本后,你将看到如下输出。

# sh /opt/scripts/sar-cpu-avg.sh
+----------------------------------------------------------------------------------+
|Average:         CPU     %user     %nice   %system   %iowait    %steal     %idle  |
+----------------------------------------------------------------------------------+
08/01/2019        all      0.70      0.00      1.19      0.00      0.00     98.10
08/02/2019        all      1.73      0.00      3.16      0.01      0.00     95.10
08/03/2019        all      1.73      0.00      3.16      0.01      0.00     95.11
08/04/2019        all      1.02      0.00      1.80      0.00      0.00     97.18
08/05/2019        all      0.68      0.00      1.08      0.01      0.00     98.24
08/06/2019        all      0.71      0.00      1.17      0.00      0.00     98.12
08/07/2019        all      1.79      0.00      3.17      0.01      0.00     95.03
08/08/2019        all      1.78      0.00      3.14      0.01      0.00     95.08
08/09/2019        all      1.07      0.00      1.82      0.00      0.00     97.10
08/10/2019        all      0.38      0.00      0.50      0.00      0.00     99.12
.
.
.
08/29/2019        all      1.50      0.00      2.33      0.00      0.00     96.17
08/30/2019        all      2.32      0.00      3.47      0.01      0.00     94.20
+----------------------------------------------------------------------------------+

脚本 2:从 SAR 报告中获取平均内存利用率的 Bash 脚本

该 bash 脚本从每个数据文件中收集内存平均值并将其显示在一个页面上。 由于是月末,它显示了 2019 年 8 月的 28 天数据。

# vi /opt/scripts/sar-memory-avg.sh#!/bin/shecho "+-------------------------------------------------------------------------------------------------------------------+"echo "|Average:       kbmemfree kbmemused  %memused kbbuffers kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty  |"echo "+-------------------------------------------------------------------------------------------------------------------+"for file in `ls -tr /var/log/sa/sa* | grep -v sar`
do
 dat=`sar -f $file | head -n 1 | awk '{print $4}'`
 echo -n $dat
 sar -r -f $file  | grep -i Average | sed "s/Average://"doneecho "+-------------------------------------------------------------------------------------------------------------------+"

运行脚本后,你将看到如下输出。

# sh /opt/scripts/sar-memory-avg.sh
+--------------------------------------------------------------------------------------------------------------------+
|Average:        kbmemfree kbmemused  %memused kbbuffers kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty  |
+--------------------------------------------------------------------------------------------------------------------+
08/01/2019      1492331   2388461     61.55     29888   1152142   1560615     12.72   1693031    380472         6
08/02/2019      1493126   2387666     61.53     29888   1147811   1569624     12.79   1696387    373346         3
08/03/2019      1489582   2391210     61.62     29888   1147076   1581711     12.89   1701480    370325         3
08/04/2019      1490403   2390389     61.60     29888   1148206   1569671     12.79   1697654    373484         4
08/05/2019      1484506   2396286     61.75     29888   1152409   1563804     12.75   1702424    374628         4
08/06/2019      1473593   2407199     62.03     29888   1151137   1577491     12.86   1715426    371000         8
08/07/2019      1467150   2413642     62.19     29888   1155639   1596653     13.01   1716900    372574        13
08/08/2019      1451366   2429426     62.60     29888   1162253   1604672     13.08   1725931    376998         5
08/09/2019      1451191   2429601     62.61     29888   1158696   1582192     12.90   1728819    371025         4
08/10/2019      1450050   2430742     62.64     29888   1160916   1579888     12.88   1729975    370844         5
.
.
.
08/29/2019      1365699   2515093     64.81     29888   1198832   1593567     12.99   1781733    376157        15
08/30/2019      1361920   2518872     64.91     29888   1200785   1595105     13.00   1784556    375641         8
+-------------------------------------------------------------------------------------------------------------------+

脚本 3:从 SAR 报告中获取 CPU 和内存平均利用率的 Bash 脚本

该 bash 脚本从每个数据文件中收集 CPU 和内存平均值并将其显示在一个页面上。 该脚本与上面相比稍微不同。它在同一位置同时显示两者(CPU 和内存)平均值,而不是其他数据。

# vi /opt/scripts/sar-cpu-mem-avg.sh#!/bin/bashfor file in `ls -tr /var/log/sa/sa* | grep -v sar`
do
 sar -f $file | head -n 1 | awk '{print $4}'
 echo "-----------"
 sar -u -f $file | awk '/Average:/{printf("CPU Average: %.2f%\n"), 100 - $8}'
 sar -r -f $file | awk '/Average:/{printf("Memory Average: %.2f%\n"),(($3-$5-$6)/($2+$3)) * 100 }'
 printf "\n"done

运行脚本后,你将看到如下输出。

# sh /opt/scripts/sar-cpu-mem-avg.sh
08/01/2019
-----------
CPU Average: 1.90%
Memory Average: 31.09%
08/02/2019
-----------
CPU Average: 4.90%
Memory Average: 31.18%
08/03/2019
-----------
CPU Average: 4.89%
Memory Average: 31.29%
08/04/2019
-----------
CPU Average: 2.82%
Memory Average: 31.24%
08/05/2019
-----------
CPU Average: 1.76%
Memory Average: 31.28%
.
.
.
08/29/2019
-----------
CPU Average: 3.83%
Memory Average: 33.15%
08/30/2019
-----------
CPU Average: 5.80%
Memory Average: 33.19%

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/223356.html<

(0)
管理的头像管理
上一篇2025-04-15 22:27
下一篇 2025-04-15 22:28

相关推荐

  • 站群服务器怎么优化爬虫抓取效率,有哪些技巧?

    优化站群服务器爬虫抓取效率,核心在于提升服务器响应速度、保障IP纯净度、合理规划内容结构,并建立持续监控机制,服务器硬件与网络配置是基础底座不稳,上层建筑再华丽也枉然,站群服务器承载多站点,资源竞争激烈,硬件与网络配置直接影响爬虫的第一印象,选择高性能CPU与充足内存爬虫抓取本质是HTTP请求处理,CPU负责解……

    2026-07-27
    0
  • 服务器 IP 被拉黑了怎么解封

    服务器IP被拉黑,解封的关键在于先判断拉黑类型,然后对症下药, 被墙、被服务商封禁、被目标网站拉黑,三种情况各有不同的处理路径,以下内容基于行业常见实践和合规操作,帮你一步步搞定,怎么判断你的IP被拉黑了IP被拉黑的表现很直接,但原因可能藏得深,先确认症状,再做诊断,常见症状清单从你的服务器无法访问特定网站或服……

    2026-07-27
    0
  • 网站加载速度慢如何从服务器端优化,优化方法是什么

    网站加载速度慢的根源往往在服务器端,优化服务器配置、网络架构和软件环境是提升速度最直接有效的方法,很多人把精力都放在前端压缩图片、合并脚本上,却忽略了服务器端才是真正的性能瓶颈,服务器响应慢,前端再怎么优化也是杯水车薪,下面从硬件、网络、软件、内核四个层面拆解服务器端优化,并给出可落地的操作步骤,服务器硬件配置……

    2026-07-27
    0
  • 服务器CPU占用100%怎么排查解决?,是什么原因?

    服务器CPU占用100%,排查需从进程占用、系统负载、异常行为三方面入手,常规操作包括检查资源占用、分析日志、优化配置或查杀病毒, 运维工作中,CPU飙升至100%是常见棘手问题,若不及时处理,服务响应会变慢,甚至中断,下面从定位到解决,再到预防,给出系统化方案,快速定位——找到消耗CPU的真实进程当告警发出……

    2026-07-27
    0
  • 站群服务器如何防同行恶意攻击,有哪些防御措施?

    站群服务器防同行恶意攻击,关键在于构建以IP隔离、流量清洗、系统加固和合规服务商为核心的多层防御体系,站群服务器因为承担多个独立站点,IP数量多,暴露面广,很容易成为同行恶意攻击的目标,攻击手段从流量型DDoS到应用层CC、端口扫描、渗透提权,甚至恶意举报导致IP被搜索引擎屏蔽,本质上都是在利用防御盲区,要真正……

    2026-07-27
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注