欢迎光临
我们一直在努力

内存不足时发送电子邮件警报的Shell脚本

Unix / Linux shell程序(如bash)的一个强大的方面是它们支持常见的编程结构,使您能够做出决定,反复执行命令,创建新的功能等等。 您可以在称为shell脚本的文件中编写命令,并共同执行它们。

这为您提供了可靠而有效的系统管理手段。 您可以编写脚本来自动化任务 ,例如日常备份,系统更新等。 创建新的自定义命令/实用程序/工具等等。 您可以编写脚本来帮助您跟上服务器上正在发生的事情。

内存( RAM )是服务器的关键组件之一,它极大地影响了系统的整体性能。

在本文中,如果服务器内存不足,我们将共享一个小而有用的shell脚本来向一个或多个系统管理员发送警报电子邮件。

这个脚本特别适合用来关注带有少量内存的Linux VPS虚拟专用服务器 ),比如约1GB (约990MB )。

测试环境设置

  1. 一个安装了postfix邮件服务器CentOS / RHEL 7生产服务器

这是alertmemory.sh脚本的工作原理:首先检查可用内存大小,然后确定可用内存量是否小于或等于指定大小(本指南中为100 MB),用作基准测试最小可接受的空闲内存大小。

如果这种情况是真的,它将生成消耗服务器RAM前10个进程的列表,并向指定的电子邮件地址发送警报电子邮件。

注意 :您将必须对脚本进行一些更改(特别是邮件发件人实用程序,使用适当的标志)以符合您的Linux发行版要求。

检查服务器内存的Shell脚本
#!/bin/bash ########################################################################################Script Name    :alertmemory.sh#Description    :send alert mail when server memory is running low#Args           :       #Author         :Aaron Kili Kisinga#Email          :[email protected]#License       : GNU GPL-3	######################################################################################### declare mail variables##email subject subject="Server Memory Status Alert"##sending mail asfrom="[email protected]"## sending mail toto="[email protected]"## send carbon copy toalso_to="[email protected]"## get total free memory size in megabytes(MB) free=$(free -mt | grep Total | awk '{print $4}')## check if free memory is less or equals to  100MBif [[ "$free" -le 100  ]]; then## get top processes consuming system memory and save to temporary file ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head >/tmp/top_proccesses_consuming_memory.txtfile=/tmp/top_proccesses_consuming_memory.txt## send email if system memory is running lowecho -e "Warning, server memory is running low!\n\nFree memory: $free MB" | mailx -a "$file" -s "$subject" -r "$from" -c "$to" "$also_to"fiexit 0

在创建脚本/etc/scripts/alertmemory.sh之后 ,使其可执行并符号链接到cron.hourly。

# chmod +x /etc/scripts/alertmemory.sh# ln -s -t /etc/cron.hourly/alertmemory.sh /etc/scripts/alertmemory.sh

这意味着只要服务器正在运行,上面的脚本将在每1小时后运行一次。

提示 :您可以测试它是否按预期工作,将基准标记值设置得稍高,以轻松触发电子邮件发送,并指定一个小约5分钟的时间间隔。

然后继续使用脚本中提供的free命令从命令行进行检查。 一旦确认它正在工作,请定义您想要使用的实际值。

下面是一个显示示例报警邮件的屏幕截图。

Linux内存电子邮件警报

Linux内存电子邮件警报

就这样! 在本文中,我们解释了如何在服务器内存(RAM)运行不足的情况下使用shell脚本向系统管理员发送警报电子邮件。 您可以通过下面的反馈表与我们分享有关此主题的任何想法。

赞(0) 打赏
未经允许不得转载:老赵部落 » 内存不足时发送电子邮件警报的Shell脚本

评论 抢沙发