1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#!/bin/bash #Author:yanconggod #date:2017-01-19 #version:1.0 # 使用 uptime 命令监控系统负载 POSTFIX_PATH= "/usr/sbin/postfix"
MAILX_PATH= "/usr/bin/mailx"
Email= "516249940@qq.com"
# 获取本机IP地址 IP=` ifconfig enp2s0| grep '\binet\b' | awk '{print $2}' `
# 格式化时间显示 DATE=` date "+%Y-%m-%d %H:%M" `
# 声明整型变量 declare -i CPU_NUM Loads ave
# 获取当前主机 CPU 核心数 CPU_NUM=` grep -c 'model name' /proc/cpuinfo `
# 获取当前系统15分钟内 CPU 平均负载率值(取个位数) Loads=`uptime| awk '{print $10}' | awk -F '.' '{print $1}' `
# 计算单核心15分钟内平均负载率 (( ave = Loads / CPU_NUM )) # 取上面计算结果的个位数 average=` echo $ave| awk -F '.' '{print $1}' `
# if [ ! -f "$POSTFIX_PATH" -o ! -f "$MAILX_PATH" ]; then
yum install -y postfix mailx
systemctl start postfix && systemctl enable postfix
fi # 当单核心15分钟负载率值高于 1 发送报警邮件 if [ $average -gt 1 ]; then
echo -e "告警: 系统负载过高!!!\n时间: $DATE\n服务器IP: $IP\n当前负载率: $Loads" \
| mail -s "系统负载过高" $Email
fi
|
本文转自 yanconggod 51CTO博客,原文链接:http://blog.51cto.com/yanconggod/1893161