zhangxinba 发表于 2018-8-27 07:27:05

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]
查看完整版本: shell脚本 使用 uptime 命令监控系统负载