脚本监控 Linux 上的内存使用率

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

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

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

当你的系统达到内存利用率的 80% 时,它将触发一封电子邮件。

  1. */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" 2daygeek@gmail.com

注意:你需要更改电子邮件地址而不是使用我们的电子邮件地址。此外,你可以根据你的要求更改内存利用率阈值。

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

  1. High Memory Alert: 80.40%

我们过去添加了许多有用的 shell 脚本。如果要查看这些内容,请导航至以下链接。

* 如何使用 shell 脚本自动执行日常活动?

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

如果要在邮件警报中获取有关内存利用率的更多信息。使用以下脚本,其中包括基于 top 命令和 ps 命令的最高内存利用率和进程详细信息。

这将立即让你了解系统的运行情况。

当你的系统达到内存利用率的 “80%” 时,它将触发一封电子邮件。

注意:你需要更改电子邮件地址而不是使用我们的电子邮件地址。此外,你可以根据你的要求更改内存利用率阈值。

  1. # vi /opt/scripts/memory-alert.sh
  2. #!/bin/sh
  3. ramusage=$(free | awk '/Mem/{printf("RAM Usage: %.2f\n"), $3/$2*100}'| awk '{print $3}')
  4. if [ "$ramusage" > 20 ]; then
  5. SUBJECT="ATTENTION: Memory Utilization is High on $(hostname) at $(date)"
  6. MESSAGE="/tmp/Mail.out"
  7. TO="2daygeek@gmail.com"
  8. echo "Memory Current Usage is: $ramusage%" >> $MESSAGE
  9. echo "" >> $MESSAGE
  10. echo "------------------------------------------------------------------" >> $MESSAGE
  11. echo "Top Memory Consuming Process Using top command" >> $MESSAGE
  12. echo "------------------------------------------------------------------" >> $MESSAGE
  13. echo "$(top -b -o +%MEM | head -n 20)" >> $MESSAGE
  14. echo "" >> $MESSAGE
  15. echo "------------------------------------------------------------------" >> $MESSAGE
  16. echo "Top Memory Consuming Process Using ps command" >> $MESSAGE
  17. echo "------------------------------------------------------------------" >> $MESSAGE
  18. echo "$(ps -eo pid,ppid,%mem,%Memory,cmd --sort=-%mem | head)" >> $MESSAGE
  19. mail -s "$SUBJECT" "$TO" < $MESSAGE
  20. rm /tmp/Mail.out
  21. fi

最后添加一个 cron 任务 来自动执行此操作。它将每 5 分钟运行一次。

  1. # crontab -e
  2. */5 * * * * /bin/bash /opt/scripts/memory-alert.sh

注意:由于脚本计划每 5 分钟运行一次,因此你将在最多 5 分钟后收到电子邮件提醒(但不是 5 分钟,取决于具体时间)。

比如说,如果你的系统达到 8.25 的给定限制,那么你将在 5 分钟内收到电子邮件警报。希望现在说清楚了。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();