云网牛站
所在位置:首页 > Linux编程 > Linux Shell脚本监视CPU利用率,达到设置的CPU利用率时发送电子邮件

Linux Shell脚本监视CPU利用率,达到设置的CPU利用率时发送电子邮件

2019-06-03 15:11:16作者:张来稿源:云网牛站

有很多开源监控工具可用于监控Linux系统性能,当系统达到给定的阈值限制时,它将发送电子邮件警报。它监视CPU利用率、内存利用率、交换利用率、磁盘空间利用率等所有内容。如果你只有很少的系统并且想要监视它们,那么编写一个小的shell脚本可以实现这一点。在本文中,我们添加了两个shell脚本来监视Linux系统上的CPU利用率。当系统达到给定阈值时,它将触发邮件到相应的电子邮件ID,即到达设置的CPU利用率时发送电子邮件通知用户。

 

方法一:Linux Shell脚本监视CPU利用率,达到设置的CPU利用率时发送电子邮件

如果你只想在系统达到给定阈值时通过邮件通知用户,请使用以下脚本,这是非常简单和直接的一行脚本。

当你的系统达到80%的CPU利用率时,它将触发电子邮件:

*/5 * * * * /usr/bin/cat /proc/loadavg | awk '{print $1}' | awk '{ if($1 > 80) printf("Current CPU Utilization is: %.2f%\n"), $0;}' | mail -s "High CPU Alert" ywnz@qq.com

注意:你需要更改电子邮件ID,而不是我们的电子邮件ID,此外,你可以根据需要更改CPU利用率阈值。

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

Current CPU Utilization is: 80.40%(即当前CPU利用率为:80.40%)

 

方法二:Linux Shell脚本监视CPU利用率,达到设置的CPU利用率时发送电子邮件

如果要在邮件警报中获取有关CPU利用率的更多信息。

使用以下脚本,其中包括基于top命令和ps命令的最高CPU利用率进程详细信息,这将不断让你了解系统的运行情况,参考top命令_Linux top命令使用详解:显示或管理执行中的程序ps命令_Linux ps命令使用详解:报告当前系统的进程状态

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

注意:你需要更改电子邮件ID,而不是我们的电子邮件ID,此外,可以根据需要更改CPU利用率阈值。

# vi /opt/scripts/cpu-alert.sh

#!/bin/bash

cpuuse=$(cat /proc/loadavg | awk '{print $1}')

if [ "$cpuuse" > 80 ]; then

SUBJECT="ATTENTION: CPU Load Is High on $(hostname) at $(date)"

MESSAGE="/tmp/Mail.out"

TO="ywnz@qq.com"

echo "CPU Current Usage is: $cpuuse%" >> $MESSAGE

echo "" >> $MESSAGE

echo "+-------------------------------------+" >> $MESSAGE

echo "Top CPU Process Using top command" >> $MESSAGE

echo "+-------------------------------------+" >> $MESSAGE

echo "$(top -bn1 | head -20)" >> $MESSAGE

echo "" >> $MESSAGE

echo "+-------------------------------------+" >> $MESSAGE

echo "Top CPU Process Using ps command" >> $MESSAGE

echo "+-------------------------------------+" >> $MESSAGE

echo "$(ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10)" >> $MESSAGE

mail -s "$SUBJECT" "$TO" < $MESSAGE

rm /tmp/Mail.out

fi

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

# crontab -e

*/10 * * * * /bin/bash /opt/scripts/cpu-alert.sh

参考:在Linux系统下使用Crontab UI安全管理Cron定时任务

注意:由于脚本计划每5分钟运行一次,因此你将在5分钟后收到电子邮件警报(但它不完全是5分钟,这取决于时间),比如说,如果你的系统达到8.25的限制,那么你将在另外5分钟内收到电子邮件警报。

输出:你将收到类似下面的电子邮件提醒,非常的详细,如下图所示:

Linux Shell脚本监视CPU利用率,达到设置的CPU利用率时发送电子邮件

 

相关主题

在Linux命令行中监控CPU和GPU温度的方法

精选文章
热门文章