shell脚本 使用 uptime 命令监控系统负载
#!/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
页:
[1]