#!/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