shell脚本 使用 uptime 命令监控系统负载

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
上一篇:windows 2008 DNS中的GlobalNames区域详解


下一篇:windows 虚拟地址映射到物理地址