用于监视Linux上的内存使用情况的Bash脚本

用于监视Linux上的内存使用情况的Bash脚本

2019-06-17 11:32:45作者:戴进稿源:云网牛站


在本文中,我们添加了两个shell脚本来监视Linux操作系统上的内存利用率,即用于监视Linux上的内存使用情况的Bash脚本,当系统达到给定阈值时,它将触发并发送电子邮件给你。可以参考脚本在实践中的应用:用脚本的方法解决搜狗拼音占用大量内存的问题

方法一、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" [email protected]

注意:请自行更改电子邮件,此外,你可以根据你的要求更改内存利用率阈值,比如达到70%时。

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

High Memory Alert: 80.40%

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

如果要在邮件警报中获取有关内存利用率的更多信息,请使用以下脚本,其中包括基于top命令和ps命令的最高内存利用率进程详细信息,这将立即让你了解系统的运行情况。

参考:top命令_Linux top命令使用详解:显示或管理执行中的程序

当你的系统达到内存利用率的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="[email protected]"

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" < $MESSAGE

rm /tmp/Mail.out

fi

最后添加一个cronjob来自动执行此操作,它将每5分钟运行一次:

# crontab -e

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

注意:由于脚本计划每5分钟运行一次,因此你将在5分钟后收到电子邮件警报,如果觉得5分钟太频繁,可以更改为10分钟或者1小时都可。

输出:将收到类似下面的电子邮件提醒,如下图:

原文地址:https://www.cnblogs.com/xuanbjut/p/12543638.html

时间: 2024-08-04 23:32:05

用于监视Linux上的内存使用情况的Bash脚本的相关文章

linux下查看内存使用情况

http://www.cnblogs.com/skyme/archive/2011/01/04/1925227.html linux下查看内存使用情况

free:一个在 Linux 中检查内存使用情况的标准命令

摘要: 我们都知道, IT 基础设施方面的大多数服务器(包括世界顶级的超级计算机)都运行在 Linux 平台上,因为和其他操作系统相比, Linux 更加灵活.有的操作系统对于一些微乎其微的改动和补丁更新都需要重启,但是 Linux 不需要,只有对于一些关键补丁的更新, Linux 才会需要重启. 我们都知道, IT 基础设施方面的大多数服务器(包括世界顶级的超级计算机)都运行在 Linux 平台上,因为和其他操作系统相比, Linux 更加灵活.有的操作系统对于一些微乎其微的改动和补丁更新都需

LINUX查看CPU内存使用情况

在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等.退出 top 的命令为 q (在 top 运行中敲 q 键一次). top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 可以直接使用top命

Linux中检查内存使用情况的命令

Linux操作系统包含大量工具,所有这些工具都可以帮助您管理系统.从简单的文件和目录工具到非常复杂的安全命令,在Linux上没有太多不能做的事情.而且,虽然普通桌面用户可能不需要在命令行熟悉这些工具,但他们对于Linux管理员来说是强制性的.为什么?首先,你需要在某个时候使用无GUI的Linux服务器.其次,命令行工具通常比其替代方案提供更多的功能和灵活性. 确定内存使用率是一项技能,您可能需要一个特定的应用程序和系统内存.发生这种情况时,知道您有多种工具可以帮助您排除故障,这很方便.或者,也许

Linux下查看内存使用情况方法总结

Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内存是其中最重要的一方面.自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况.下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法. 1. /proc/meminfo 查看RAM使用情况最简单的方法是通过/proc/meminfo.这个动态更新的虚拟

linux系统CPU,内存,磁盘,网络流量监控脚本

前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat /proc/loadavg 从系统启动开始到当前累积时刻 4, #uptime 系统运行多长时间 5, #mpstat CPU的一些统计信息 6, # 一,linux系统CPU,内存,磁盘,网络流量监控脚本 [作者:佚名来源:不详时间:2010-7-6 [我来说两句大中小] cme.sh网络流量监

Linux 查看服务器内存使用情况

1.free命令 free -m total       used       free     shared    buffers     cachedMem:          1526        182       1344          0         16         99-/+ buffers/cache:         65       1460Swap:         3071          0       3071 很清晰明白的显示出了总内存多少,已使用

Linux 上传文件rz 命令提示 -bash: rz: command not found 问题解决办法

在使用rz命令上传文件的时候报错,如截图 这个问题是Linux系统缺少工具包,在有网络的情况是可以使用下面命令,进行在线安装 yum -y install lrzsz 这样子就上传成功了,如果有些同学出现?z waiting to receive.**B0100000023be50 rz 与 sz 需要端支持.终端就是连接远程服务器的客户端,例如 XShell.SecureCRT 等,linux默认终端是不支持的. 我用的是Xshell工具. 原文地址:https://www.cnblogs.c

linux 上批量转换pdf格式到swf 脚本

#!/bin/bashfunction ergodic(){for file in ` ls $1 `doif [ -d $1"/"$file ]thenergodic $1"/"$fileelselocal path=$1"/"$filelocal name=$filelocal a=`echo $file | cut -d "." -f1` if [ "${file##*.}"="pdf&qu