linux cpu警报,Linux Shell脚本通过电子邮件警报监视CPU使用率

Linux Shell脚本通过电子邮件警报监视CPU使用率

有许多开源监视工具可用于监视Linux系统的性能,当系统达到给定的阈值限制时,这些工具将发送电子邮件警报。

它监视所有内容,例如CPU利用率,内存利用率,交换利用率,磁盘空间利用率等等。

如果您只有少数几个系统并且要监视它们,那么编写一个小的Shell脚本就可以实现。

在本教程中,我们添加了两个Shell脚本来监视Linux系统上的CPU使用率。

当系统达到给定的阈值时,它将触发一封具有相应电子邮件ID的邮件。

方法-1: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" daygeek@gmail.com

注意:请根据您的要求更改电子邮件ID和CPU使用率阈值。

输出:您将收到类似于以下的电子邮件警报。

Current CPU Utilization is: 80.40%

方法2:Linux Shell脚本通过电子邮件警报监视CPU使用率

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

然后使用以下脚本,该脚本包括基于top Command和ps Command的top CPU利用率过程详细信息。

这将立即使您了解系统上正在发生什么。

当您的系统达到80%CPU使用率时,它将触发一封电子邮件。

注意:请根据您的要求更改电子邮件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="daygeek@gmail.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

注意:  由于脚本计划每5分钟运行一次,因此您将每隔5分钟收到一次电子邮件警报

例如,如果您的系统在8.25分钟后达到给定的限制,那么您将在第二个周期(即10分钟(第二个5分钟的周期)之后)收到电子邮件警报

输出:您将收到类似于以下的电子邮件警报。

CPU Current Usage is: 80.51%

+------------------------------------------------------------------+

Top CPU Process Using top command

+------------------------------------------------------------------+

top - 13:23:01 up  1:43,  1 user,  load average: 2.58, 2.58, 1.51

Tasks: 306 total,   3 running, 303 sleeping,   0 stopped,   0 zombie

%Cpu0  :  6.2 us,  6.2 sy,  0.0 ni, 87.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu1  : 18.8 us,  0.0 sy,  0.0 ni, 81.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu2  : 50.0 us, 37.5 sy,  0.0 ni, 12.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu3  :  5.9 us,  5.9 sy,  0.0 ni, 88.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu4  :  0.0 us,  5.9 sy,  0.0 ni, 94.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu5  : 29.4 us, 23.5 sy,  0.0 ni, 47.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu6  :  0.0 us,  5.9 sy,  0.0 ni, 94.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu7  :  5.9 us,  0.0 sy,  0.0 ni, 94.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem : 16248588 total,   223436 free,  5816924 used, 10208228 buff/cache

KiB Swap: 17873388 total, 17871340 free,     2048 used.  7440884 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND

8867 daygeek   20     2743884 440420 360952 R 100.0   2.7   1:07.25 /usr/lib/virtualbox/VirtualBoxVM --comment CentOS7 --startvm 002f47b8-2af2-48f5-be1d-67b67e03514c --no-startvm-errormsgbox

9119 daygeek   20       36136    784        R  46.7   0.0   0:00.07 /usr/bin/CROND -n

1057 daygeek   20      889808 487692 461692 S  13.3   3.0   4:21.12 /usr/lib/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 3

3098 daygeek   20     1929012 351412 120532 S  13.3   2.2  16:42.51 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLen 9236 -prefMapSize 184485 -parentBuildID 20190521202118 -greomni /us+

1 root      20      188820  10144   7708 S   6.7   0.1   0:06.92 /sbin/init

818 gdm       20      199836  25120  15876 S   6.7   0.2   0:01.85 /usr/lib/Xorg vt1 -displayfd 3 -auth /run/user/120/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 3

1170 daygeek    9 -11 2676516  16516  12520 S   6.7   0.1   1:28.30 /usr/bin/pulseaudio --daemonize=no

8271 root      20                           I   6.7         0:00.21 [kworker/u16:4-i915]

9117 daygeek   20       13528   4036   3144 R   6.7   0.0   0:00.01 top -bn1

+------------------------------------------------------------------+

Top CPU Process Using ps command

+------------------------------------------------------------------+

%CPU   PID USER     COMMAND

8.8  8522 daygeek  /usr/lib/virtualbox/VirtualBox

86.2  8867 daygeek  /usr/lib/virtualbox/VirtualBoxVM --comment CentOS7 --startvm 002f47b8-2af2-48f5-be1d-67b67e03514c --no-startvm-errormsgbox

76.1  8921 daygeek  /usr/lib/virtualbox/VirtualBoxVM --comment Ubuntu-18.04 --startvm e8c32dbb-8b01-41b0-977a-bf28b9db1117 --no-startvm-errormsgbox

5.5  8080 daygeek  /usr/bin/nautilus --gapplication-service

4.7  4575 daygeek  /usr/lib/firefox/firefox -contentproc -childID 12 -isForBrowser -prefsLen 9375 -prefMapSize 184485 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1525 true tab

4.4  3511 daygeek  /usr/lib/firefox/firefox -contentproc -childID 8 -isForBrowser -prefsLen 9308 -prefMapSize 184485 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1525 true tab

4.4  3190 daygeek  /usr/lib/firefox/firefox -contentproc -childID 7 -isForBrowser -prefsLen 9237 -prefMapSize 184485 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1525 true tab

4.4  1612 daygeek  /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 184485 -parentBuildID 20190521202118 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1525 true tab

4.2  3565 daygeek  /usr/bin/../lib/notepadqq/notepadqq-bin

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值