博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell脚本 使用 uptime 命令监控系统负载
阅读量:6429 次
发布时间:2019-06-23

本文共 1062 字,大约阅读时间需要 3 分钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/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
本文转自 yanconggod 51CTO博客,原文链接:http://blog.51cto.com/yanconggod/1893161

转载地址:http://rviga.baihongyu.com/

你可能感兴趣的文章
带你Python入门,踏进人工智能领域
查看>>
core data 基础操作
查看>>
手机共享电脑网络
查看>>
ORM框架Hibernate (四) 一对一单向、双向关联映射
查看>>
20140616 科技脉搏 -最大颠覆来自创业公司与边缘产业
查看>>
offsetLeft, offsetTop以及postion().left , postion().top有神马区别
查看>>
visual studio 中GIT的用法
查看>>
数据库中触发器before与after认识
查看>>
手动露天广场和立方体
查看>>
随机选择
查看>>
【Java并发编程三】闭锁
查看>>
分布式事务中遇到的 “与基础事务管理器的通信失败”的解决方法
查看>>
让你的Git水平更上一层楼的10个小贴士
查看>>
c++ string 之 find_first_not_of 源码
查看>>
mybatis中的#和$的区别
查看>>
ubuntu下搭建NDK环境
查看>>
MessageDigest简单介绍
查看>>
webpack window 使用sass来编译css样式
查看>>
D3 & Data Visualization in Ext JS
查看>>
java通过UUID生成16位唯一订单号
查看>>