方法-1:用 Linux Bash 脚本监视内存利用率并发送电子邮件
如果只想在系统达到给定阈值时通过邮件获取当前内存利用率百分比,请使用以下脚本。
这是个非常简单直接的单行脚本。在大多数情况下,我更喜欢使用这种方法。
当你的系统达到内存利用率的80% 时,它将触发一封电子邮件。
/5 /usr/bin/free | awk '/Mem/{printf("RAM Usage: %.2f%\\n"), $3/$2100}' | 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/s/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" < $MESSAGE
rm /tmp/Mail.out
fi
最后添加一个cron 任务 来自动执行此操作。它将每 5 分钟运行一次。
# crontab -e
/5 * /bin/bash /opt/s/memory-alert.sh
注意:由于脚本计划每5 分钟运行一次,因此你将在最多 5 分钟后收到电子邮件提醒(但不是 5 分钟,取决于具体时间)。
比如说,如果你的系统达到8.25 的给定限制,那么你将在 5 分钟内收到电子邮件警报。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞1
添加新评论0 条评论