#!/bin/bash #Author:yanconggod #date:2017-01-19 #version:1.0 # 使用 uptime 命令监控系统负载 POSTFIX_PATH="/usr/sbin/postfix" MAILX_PATH="/usr/bin/mailx" Email="[email protected]" # 获取本机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
时间: 2024-10-09 16:53:31