iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >怎么利用Bash脚本监控Linux的内存使用情况
  • 763
分享到

怎么利用Bash脚本监控Linux的内存使用情况

2023-06-28 16:06:14 763人浏览 独家记忆
摘要

本篇文章为大家展示了怎么利用Bash脚本监控linux的内存使用情况,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。现在用于监控Linux系统内存的工具有很多,当系统到达指定的阈值时,监控工具可以发送

本篇文章为大家展示了怎么利用Bash脚本监控linux的内存使用情况,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

现在用于监控Linux系统内存的工具有很多,当系统到达指定的阈值时,监控工具可以发送电子邮件警报。

我们添加了两个 shell 脚本来监视 Linux 系统上的内存利用率。当系统达到给定阈值时,它将给特定电子邮件地址发邮件。

方法-1:用 Linux Bash 脚本监视内存利用率并发送电子邮件

如果只想在系统达到给定阈值时通过邮件获取当前内存利用率百分比,请使用以下脚本。

这是个非常简单直接的单行脚本。在大多数情况下,我更喜欢使用这种方法。

当你的系统达到内存利用率的 80% 时,它将触发一封电子邮件。

 */5 * * * * /usr/bin/free | awk '/Mem/{printf("RAM Usage: %.2f%\n"), $3/$2*100}' | awk '{print $3}' | awk '{ if($1 > 80) print $0;}' | mail -s "High Memory Alert" 2daygeek@gmail.com

注意:你需要更改电子邮件地址而不是使用我们的电子邮件地址。此外,你可以根据你的要求更改内存利用率阈值。

输出:你将收到类似下面的电子邮件提醒。

High Memory Alert: 80.40%

我们过去添加了许多有用的 shell 脚本。如果要查看这些内容,请导航至以下链接。

* 如何使用 shell 脚本自动执行日常活动?

方法-2:用 Linux Bash 脚本监视内存利用率并发送电子邮件  

如果要在邮件警报中获取有关内存利用率的更多信息。使用以下脚本,其中包括基于 top 命令和 ps 命令的最高内存利用率和进程详细信息。

这将立即让你了解系统的运行情况。

当你的系统达到内存利用率的 “80%” 时,它将触发一封电子邮件。

注意:你需要更改电子邮件地址而不是使用我们的电子邮件地址。此外,你可以根据你的要求更改内存利用率阈值。

 # vi /opt/scripts/memory-alert.sh  #!/bin/sh ramusage=$(free | awk '/Mem/{printf("RAM Usage: %.2f\n"), $3/$2*100}'| awk '{print $3}')  if [ "$ramusage" > 20 ]; then   SUBJECT="ATTENTioN: Memory Utilization is High on $(hostname) at $(date)"  MESSAGE="/tmp/Mail.out"  TO="2daygeek@gmail.com"  echo "Memory Current Usage is: $ramusage%" >> $MESSAGE  echo "" >> $MESSAGE  echo "------------------------------------------------------------------" >> $MESSAGE  echo "Top Memory Consuming Process Using top command" >> $MESSAGE  echo "------------------------------------------------------------------" >> $MESSAGE  echo "$(top -b -o +%MEM | head -n 20)" >> $MESSAGE  echo "" >> $MESSAGE  echo "------------------------------------------------------------------" >> $MESSAGE  echo "Top Memory Consuming Process Using ps command" >> $MESSAGE  echo "------------------------------------------------------------------" >> $MESSAGE  echo "$(ps -eo pid,ppid,%mem,%Memory,cmd --sort=-%mem | head)" >> $MESSAGE  mail -s "$SUBJECT" "$TO"最后添加一个 cron 任务 来自动执行此操作。它将每 5 分钟运行一次。 # crontab -e``*``/5` `* * * * ``/bin/bash` `/opt/scripts/memory-alert``.sh注意:由于脚本计划每 5 分钟运行一次,因此你将在最多 5 分钟后收到电子邮件提醒(但不是 5 分钟,取决于具体时间)。比如说,如果你的系统达到 8.25 的给定限制,那么你将在 5 分钟内收到电子邮件警报。希望现在说清楚了。输出:你将收到类似下面的电子邮件提醒。 Memory Current Usage is: 80.71%  +------------------------------------------------------------------+ Top Memory Consuming Process Using top command +------------------------------------------------------------------+ top - 12:00:58 up 5 days, 9:03, 1 user, load average: 1.82, 2.60, 2.83 Tasks: 314 total,  1 running, 313 sleeping,  0 stopped,  0 zombie %Cpu0 : 8.3 us, 12.5 sy, 0.0 ni, 75.0 id, 0.0 wa, 0.0 hi, 4.2 si, 0.0 st %Cpu1 : 13.6 us, 4.5 sy, 0.0 ni, 81.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 21.7 us, 21.7 sy, 0.0 ni, 56.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 13.6 us, 9.1 sy, 0.0 ni, 77.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu4 : 17.4 us, 8.7 sy, 0.0 ni, 73.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu5 : 20.8 us, 4.2 sy, 0.0 ni, 70.8 id, 0.0 wa, 0.0 hi, 4.2 si, 0.0 st %Cpu6 : 9.1 us, 0.0 sy, 0.0 ni, 90.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu7 : 17.4 us, 4.3 sy, 0.0 ni, 78.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 16248588 total, 5015964 free, 6453404 used, 4779220 buff/cache KiB Swap: 17873388 total, 16928620 free,  944768 used. 6423008 avail Mem   PID USER   PR NI  VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND 17163 daygeek  20   2033204 487736 282888 S 10.0  3.0  8:26.07 /usr/lib/firefox/firefox -contentproc -childID 15 -isForBrowser -prefsLen 9408 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /u+  1121 daygeek  20   4191388 419180 100552 S  5.0  2.6 126:02.84 /usr/bin/gnome-shell  1902 daygeek  20   1701644 327216 82536 S 20.0  2.0 153:27.92 /opt/Google/chrome/chrome  2969 daygeek  20   1051116 324656 92388 S 15.0  2.0 149:38.09 /opt/google/chrome/chrome --type=renderer --field-trial-handle=10346122902703263820,11905758137655502112,131072 --service-pipe-token=1339861+  1068 daygeek  20   1104856 309552 278072 S  5.0  1.9 143:47.42 /usr/lib/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 3 27246 daygeek  20   907344 265600 108276 S 30.0  1.6 10:42.80 /opt/google/chrome/chrome --type=renderer --field-trial-handle=10346122902703263820,11905758137655502112,131072 --service-pipe-token=8587368+  +------------------------------------------------------------------+ Top Memory Consuming Process Using ps command +------------------------------------------------------------------+  PID PPID %MEM %CPU CMD  8223   1 6.4 6.8 /usr/lib/firefox/firefox --new-window 13948 1121 6.3 1.2 /usr/bin/../lib/notepadqq/notepadqq-bin  8671 8223 4.4 7.5 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 6999 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab 17163 8223 3.0 0.6 /usr/lib/firefox/firefox -contentproc -childID 15 -isForBrowser -prefsLen 9408 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab  1121 1078 2.5 1.6 /usr/bin/gnome-shell 17937 8223 2.5 0.8 /usr/lib/firefox/firefox -contentproc -childID 16 -isForBrowser -prefsLen 9410 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab  8499 8223 2.2 0.6 /usr/lib/firefox/firefox -contentproc -childID 4 -isForBrowser -prefsLen 6635 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab  8306 8223 2.2 0.8 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab  9198 8223 2.1 0.6 /usr/lib/firefox/firefox -contentproc -childID 7 -isForBrowser -prefsLen 8604 -prefMapSize 184979 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8223 true tab以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

上述内容就是怎么利用Bash脚本监控Linux的内存使用情况,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网操作系统频道。

--结束END--

本文标题: 怎么利用Bash脚本监控Linux的内存使用情况

本文链接: https://www.lsjlt.com/news/320345.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作