天天看点

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

<code>#!/bin/bash</code>

<code>#Author:yanconggod</code>

<code>#date:2017-01-19</code>

<code>#version:1.0</code>

<code># 使用 uptime 命令监控系统负载</code>

<code>POSTFIX_PATH=</code><code>"/usr/sbin/postfix"</code>

<code>MAILX_PATH=</code><code>"/usr/bin/mailx"</code>

<code>Email=</code><code>"[email protected]"</code>

<code># 获取本机IP地址</code>

<code>IP=`</code><code>ifconfig</code> <code>enp2s0|</code><code>grep</code> <code>'\binet\b'</code><code>|</code><code>awk</code> <code>'{print $2}'</code><code>`</code>

<code># 格式化时间显示</code>

<code>DATE=`</code><code>date</code> <code>"+%Y-%m-%d %H:%M"</code><code>`</code>

<code># 声明整型变量</code>

<code>declare</code> <code>-i CPU_NUM Loads ave</code>

<code># 获取当前主机 CPU 核心数</code>

<code>CPU_NUM=`</code><code>grep</code> <code>-c </code><code>'model name'</code> <code>/proc/cpuinfo</code><code>`</code>

<code># 获取当前系统15分钟内 CPU 平均负载率值(取个位数)</code>

<code>Loads=`uptime|</code><code>awk</code> <code>'{print $10}'</code><code>|</code><code>awk</code> <code>-F</code><code>'.'</code> <code>'{print $1}'</code><code>`</code>

<code># 计算单核心15分钟内平均负载率</code>

<code>(( ave = Loads / CPU_NUM ))</code>

<code># 取上面计算结果的个位数</code>

<code>average=`</code><code>echo</code> <code>$ave|</code><code>awk</code> <code>-F </code><code>'.'</code> <code>'{print $1}'</code><code>`</code>

<code>#</code>

<code>if</code> <code>[ ! -f </code><code>"$POSTFIX_PATH"</code> <code>-o ! -f </code><code>"$MAILX_PATH"</code> <code>];</code><code>then</code>

<code>    </code><code>yum </code><code>install</code> <code>-y postfix mailx</code>

<code>    </code><code>systemctl start postfix &amp;&amp; systemctl </code><code>enable</code> <code>postfix</code>

<code>fi</code>

<code># 当单核心15分钟负载率值高于 1 发送报警邮件</code>

<code>if</code> <code>[ $average -gt 1 ];</code><code>then</code>

<code>  </code><code>echo</code> <code>-e </code><code>"告警: 系统负载过高!!!\n时间: $DATE\n服务器IP: $IP\n当前负载率: $Loads"</code> <code>\</code>

<code>   </code><code>| mail -s </code><code>"系统负载过高"</code> <code>$Email</code>

<code></code>

本文转自 yanconggod 51CTO博客,原文链接:http://blog.51cto.com/yanconggod/1893161