linux下实现内存监视,shell脚本来监视Linux上的内存使用情况
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上的内存使用情况相关推荐
- LINUX下的流量监控shell脚本
这篇文章主要介绍了LINUX下的流量监控shell脚本,可以适用任何Linux版本,需要的朋友可以参考下 一.脚本源码 # vi /etc/rc.d/traffic_monitor.sh ------ ...
- linux下定时任务以及简单shell脚本的编写------码神帅
如何编写一个简单的shell(.sh) 在开始前要明白shell脚本的后缀为.sh 在此我们用crt连接之前安装过vim的ubuntu做测试,来创建一个可以输出"Hello word!&qu ...
- Linux启动shell的快捷方式,Linux下为可执行shell脚本文件(.sh),制作桌面启动快捷方式...
自装软件默认安装目录为 /usr/local,而生成的应用程序可执行图标(文件)放置在/usr/local/share/applications 目录下,以XXX.desktop 文件形式存在.以xx ...
- linux下自定义dubbo的shell脚本
转载于:https://www.cnblogs.com/Eddyer/p/6533315.html
- Shell 脚本来监控 Linux 系统的内存
一.安装Linux下面的一个邮件客户端Msmtp软件(类似于一个Foxmail的工具) 1.下载安装:http://downloads.sourceforge.net - 206451&big ...
- linux脚本输出到文件,在linux下,如何将shell里输出的信息写入到文件里呢?
在linux下,如何将shell里输出的信息写入到文件里呢? 在linux下,如何将shell里输出的信息写入到文件里呢? 通过下面的两个管道符可以实现些功能. > ...
- Linux服务器监控cpu数据shell脚本
Linux服务器监控cpu数据shell脚本 背景: 一种简易的监控进程的CPU.内存.线程数.句柄数的办法,使用shell脚本实现监控,Excel实现数据分析. #!/bin/bash#过滤出需要的 ...
- linux下简单的备份的脚本 2 【转】
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4577034 之前写过 linux下简单 ...
- linux 上自动执行caffe,linux下caffe的命令运行脚本
参考:https://www.cnblogs.com/denny402/p/5076285.html 首先编译: make -j8 make pycaffe 注:下面的--solver=.... 等价 ...
最新文章
- 分布式锁的使用与注意事项
- mysql的编译_Mysql编译安装
- for循环只执行一次_Python中for循环和while循环有什么区别?
- “天昌”的挽歌——逝去的背影(一)
- VS VC 读取 INI文件
- Changing scope values asynchronously - updates don't propagate without .apply()
- java先抽到红球获胜,【图片】红蓝球概率问题,通过程序模拟抽取,计算结果已出,有兴趣来看【非现役文职吧】_百度贴吧...
- GWT(Google Web Tookit) Eclipse Plugin的zip下载地址(同时提供GWT Designer下载地址)
- python装饰器的通俗理解_python装饰器的通俗理解
- android获取屏幕宽高与获取控件宽高
- 201421410019 杨光裕 实验一
- java 7下载_java7下载 v7.0 官方最新版
- OpenCV3学习笔记(1)- OpenCV安装配置、基本架构、使用CMake编译OpenCV源代码
- CuraEngine引擎命令行调用方法
- 7-20 打印九九口诀表(15 分)
- Decal Buffer相关
- 各种后缀名--使用什么软件打开
- Java基础练习--猜数字游戏
- 快速搭建APP的服务器
- 认是计算机第2节知识点,2.2《优化计算机》教案
热门文章
- shell脚本while read line的使用
- Find The Multiple POJ - 1426 (BFS)
- ASP.NET Core的身份认证框架IdentityServer4--入门【转】
- 网络流24题 洛谷 3355 骑士共存
- 解决若要安装 Microsoft Office 2010,需要MSXML 版本 6.10.1129的问题
- dubbo学习 三 dubbox概述
- 隐藏Android下的虚拟按键
- 《maven实战》笔记(2)----一个简单maven项目的搭建,测试和打包
- hdu 4280 最大流sap
- 利用有名管道实现进程间的通信