shell脚本来监视Linux上的内存使用情况

监视所有内容,例如CPU利用率,内存利用率,交换利用率,磁盘空间利用率等等。

如果您只有很少的系统并且要监视它们,那么编写一个小的Shell脚本可以使您的任务非常容易。

我们添加了两个Shell脚本来监视Linux系统上的内存利用率。

当系统达到给定的阈值时,它将触发一封具有给定电子邮件ID的邮件。

方法1:Linux shell脚本通过电子邮件警报监视内存利用率。

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

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

当您的系统达到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" daygeek@gmail.com

注意:   请根据您的要求更改电子邮件ID和内存利用率阈值

输出:您将收到类似于以下的电子邮件警报。

High Memory Alert: 80.40%

方法2:Linux bash脚本通过电子邮件警报监视内存利用率。

如果要在邮件警报中获取有关内存利用率的更多信息。

然后使用以下脚本,其中包括基于顶部 Command和ps Command的顶部内存使用过程详细信息。

这将立即让您了解系统上正在发生什么,并在系统达到80%内存利用率时触发电子邮件。

注意:请根据您的要求更改电子邮件ID和内存利用率阈值。

# vi /opt/scripts/memory-alert.sh

#!/bin/sh

ramusage=$(free | awk '/Mem/{printf("RAM Usage: %.2fn"), $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="daygeek@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,%cpu,cmd --sort=-%mem | head)" >> $MESSAGE

mail -s "$SUBJECT" "$TO" < $MESSAGE

rm /tmp/Mail.out

fi

最后添加一个cronjob以使其自动化。它将每5分钟运行一次。

# crontab -e

*/5 * * * * /bin/bash /opt/scripts/memory-alert.sh

注意:  由于脚本计划每5分钟运行一次,因此您将每隔5分钟收到一次电子邮件警报

例如,如果您的系统在8.25分钟后达到给定的限制,那么您将在第二个周期(即10分钟(第二个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下实现内存监视,shell脚本来监视Linux上的内存使用情况相关推荐

  1. LINUX下的流量监控shell脚本

    这篇文章主要介绍了LINUX下的流量监控shell脚本,可以适用任何Linux版本,需要的朋友可以参考下 一.脚本源码 # vi /etc/rc.d/traffic_monitor.sh ------ ...

  2. linux下定时任务以及简单shell脚本的编写------码神帅

    如何编写一个简单的shell(.sh) 在开始前要明白shell脚本的后缀为.sh 在此我们用crt连接之前安装过vim的ubuntu做测试,来创建一个可以输出"Hello word!&qu ...

  3. Linux启动shell的快捷方式,Linux下为可执行shell脚本文件(.sh),制作桌面启动快捷方式...

    自装软件默认安装目录为 /usr/local,而生成的应用程序可执行图标(文件)放置在/usr/local/share/applications 目录下,以XXX.desktop 文件形式存在.以xx ...

  4. linux下自定义dubbo的shell脚本

    转载于:https://www.cnblogs.com/Eddyer/p/6533315.html

  5. Shell 脚本来监控 Linux 系统的内存

    一.安装Linux下面的一个邮件客户端Msmtp软件(类似于一个Foxmail的工具) 1.下载安装:http://downloads.sourceforge.net - 206451&big ...

  6. linux脚本输出到文件,在linux下,如何将shell里输出的信息写入到文件里呢?

    在linux下,如何将shell里输出的信息写入到文件里呢? 在linux下,如何将shell里输出的信息写入到文件里呢? 通过下面的两个管道符可以实现些功能. >               ...

  7. Linux服务器监控cpu数据shell脚本

    Linux服务器监控cpu数据shell脚本 背景: 一种简易的监控进程的CPU.内存.线程数.句柄数的办法,使用shell脚本实现监控,Excel实现数据分析. #!/bin/bash#过滤出需要的 ...

  8. linux下简单的备份的脚本 2 【转】

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4577034 之前写过 linux下简单 ...

  9. linux 上自动执行caffe,linux下caffe的命令运行脚本

    参考:https://www.cnblogs.com/denny402/p/5076285.html 首先编译: make -j8 make pycaffe 注:下面的--solver=.... 等价 ...

最新文章

  1. 分布式锁的使用与注意事项
  2. mysql的编译_Mysql编译安装
  3. for循环只执行一次_Python中for循环和while循环有什么区别?
  4. “天昌”的挽歌——逝去的背影(一)
  5. VS VC 读取 INI文件
  6. Changing scope values asynchronously - updates don't propagate without .apply()
  7. java先抽到红球获胜,【图片】红蓝球概率问题,通过程序模拟抽取,计算结果已出,有兴趣来看【非现役文职吧】_百度贴吧...
  8. GWT(Google Web Tookit) Eclipse Plugin的zip下载地址(同时提供GWT Designer下载地址)
  9. python装饰器的通俗理解_python装饰器的通俗理解
  10. android获取屏幕宽高与获取控件宽高
  11. 201421410019 杨光裕 实验一
  12. java 7下载_java7下载 v7.0 官方最新版
  13. OpenCV3学习笔记(1)- OpenCV安装配置、基本架构、使用CMake编译OpenCV源代码
  14. CuraEngine引擎命令行调用方法
  15. 7-20 打印九九口诀表(15 分)
  16. Decal Buffer相关
  17. 各种后缀名--使用什么软件打开
  18. Java基础练习--猜数字游戏
  19. 快速搭建APP的服务器
  20. 认是计算机第2节知识点,2.2《优化计算机》教案

热门文章

  1. shell脚本while read line的使用
  2. Find The Multiple POJ - 1426 (BFS)
  3. ASP.NET Core的身份认证框架IdentityServer4--入门【转】
  4. 网络流24题 洛谷 3355 骑士共存
  5. 解决若要安装 Microsoft Office 2010,需要MSXML 版本 6.10.1129的问题
  6. dubbo学习 三 dubbox概述
  7. 隐藏Android下的虚拟按键
  8. 《maven实战》笔记(2)----一个简单maven项目的搭建,测试和打包
  9. hdu 4280 最大流sap
  10. 利用有名管道实现进程间的通信