有很多开源监控工具可用于监控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分钟内收到电子邮件警报。 输出:你将收到类似下面的电子邮件提醒,非常的详细,如下图所示:
相关主题 |