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