如何使用 Bash 脚本从 SAR 报告中获取 CPU 和内存使用情况 | Linux 中国

2019 年 9 月 17 日 Linux中国
在本文中,我们添加了三个 bash 脚本,它们可以帮助你在一个地方轻松查看每个数据文件的平均值。
-- Magesh Maruthamuthu

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

要将覆盖期延长至 28 天,请对 /etc/sysconfig/sysstat 文件做以下更改。

编辑 sysstat 文件并将 HISTORY=7 更改为 HISTORY=28

在本文中,我们添加了三个 bash 脚本,它们可以帮助你在一个地方轻松查看每个数据文件的平均值。

我们过去加过许多有用的 shell 脚本。如果你想查看它们,请进入下面的链接。

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

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

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

该 bash 脚本从每个数据文件中收集 CPU 平均值并将其显示在一个页面上。

由于是月末,它显示了 2019 年 8 月的 28 天数据。

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

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

   
   
     
  1. # sh /opt/scripts/sar-cpu-avg.sh
  2. +----------------------------------------------------------------------------------+
  3. |Average: CPU %user %nice %system %iowait %steal %idle |
  4. +----------------------------------------------------------------------------------+
  5. 08/01/2019 all 0.70 0.00 1.19 0.00 0.00 98.10
  6. 08/02/2019 all 1.73 0.00 3.16 0.01 0.00 95.10
  7. 08/03/2019 all 1.73 0.00 3.16 0.01 0.00 95.11
  8. 08/04/2019 all 1.02 0.00 1.80 0.00 0.00 97.18
  9. 08/05/2019 all 0.68 0.00 1.08 0.01 0.00 98.24
  10. 08/06/2019 all 0.71 0.00 1.17 0.00 0.00 98.12
  11. 08/07/2019 all 1.79 0.00 3.17 0.01 0.00 95.03
  12. 08/08/2019 all 1.78 0.00 3.14 0.01 0.00 95.08
  13. 08/09/2019 all 1.07 0.00 1.82 0.00 0.00 97.10
  14. 08/10/2019 all 0.38 0.00 0.50 0.00 0.00 99.12
  15. .
  16. .
  17. .
  18. 08/29/2019 all 1.50 0.00 2.33 0.00 0.00 96.17
  19. 08/30/2019 all 2.32 0.00 3.47 0.01 0.00 94.20
  20. +----------------------------------------------------------------------------------+

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

该 bash 脚本从每个数据文件中收集内存平均值并将其显示在一个页面上。

由于是月末,它显示了 2019 年 8 月的 28 天数据。

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

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

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

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

该 bash 脚本从每个数据文件中收集 CPU 和内存平均值并将其显示在一个页面上。

该脚本与上面相比稍微不同。它在同一位置同时显示两者(CPU 和内存)平均值,而不是其他数据。

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

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

   
   
     
  1. # sh /opt/scripts/sar-cpu-mem-avg.sh
  2. 08/01/2019
  3. -----------
  4. CPU Average: 1.90%
  5. Memory Average: 31.09%
  6. 08/02/2019
  7. -----------
  8. CPU Average: 4.90%
  9. Memory Average: 31.18%
  10. 08/03/2019
  11. -----------
  12. CPU Average: 4.89%
  13. Memory Average: 31.29%
  14. 08/04/2019
  15. -----------
  16. CPU Average: 2.82%
  17. Memory Average: 31.24%
  18. 08/05/2019
  19. -----------
  20. CPU Average: 1.76%
  21. Memory Average: 31.28%
  22. .
  23. .
  24. .
  25. 08/29/2019
  26. -----------
  27. CPU Average: 3.83%
  28. Memory Average: 33.15%
  29. 08/30/2019
  30. -----------
  31. CPU Average: 5.80%
  32. Memory Average: 33.19%

via: https://www.2daygeek.com/linux-get-average-cpu-memory-utilization-from-sar-data-report/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

😻:还 在看吗?


登录查看更多
0

相关内容

Bourne Again Shell 是一个由 Brian Fox 于 1989 年为 GNU 项目编写的、用于替代 Bourne Shell (sh) 的 UNIX shell 程序。 en.wikipedia.org/wiki/B
【2020新书】实战R语言4,323页pdf
专知会员服务
102+阅读 · 2020年7月1日
Python导论,476页pdf,现代Python计算
专知会员服务
263+阅读 · 2020年5月17日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
108+阅读 · 2020年5月3日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
70+阅读 · 2020年1月17日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
96+阅读 · 2019年12月4日
已删除
AI掘金志
7+阅读 · 2019年7月8日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
深度学习 | 免费使用Google Colab的GPU云计算平台
沈浩老师
12+阅读 · 2018年2月4日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Arxiv
112+阅读 · 2020年2月5日
Arxiv
45+阅读 · 2019年12月20日
A Comprehensive Survey on Transfer Learning
Arxiv
121+阅读 · 2019年11月7日
Doubly Attentive Transformer Machine Translation
Arxiv
4+阅读 · 2018年7月30日
Arxiv
3+阅读 · 2018年6月1日
Arxiv
3+阅读 · 2018年5月28日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
102+阅读 · 2020年7月1日
Python导论,476页pdf,现代Python计算
专知会员服务
263+阅读 · 2020年5月17日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
108+阅读 · 2020年5月3日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
70+阅读 · 2020年1月17日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
96+阅读 · 2019年12月4日
相关资讯
已删除
AI掘金志
7+阅读 · 2019年7月8日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
深度学习 | 免费使用Google Colab的GPU云计算平台
沈浩老师
12+阅读 · 2018年2月4日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
相关论文
Arxiv
112+阅读 · 2020年2月5日
Arxiv
45+阅读 · 2019年12月20日
A Comprehensive Survey on Transfer Learning
Arxiv
121+阅读 · 2019年11月7日
Doubly Attentive Transformer Machine Translation
Arxiv
4+阅读 · 2018年7月30日
Arxiv
3+阅读 · 2018年6月1日
Arxiv
3+阅读 · 2018年5月28日
Top
微信扫码咨询专知VIP会员