利用shell监控cpu、磁盘、内存使用率,达到警报阈值发邮件进行通知
并配合任务计划,即可及时获取报警信息
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
|
#!/bin/bash
##############################################
#Author: Liuzhengwei - 1135960569@qq.com
#QQ:1135960569
#Last modified: 2017-04-19 21:50
#Filename: jiankong.sh
#Description:
##############################################
#获取cpu使用率
cpuUsage=`
top
-n 1 |
awk
-F
'[ %]+'
'NR==3 {print $2}'
`
#获取磁盘使用率
data_name=
"/dev/vda1"
diskUsage=`
df
-h |
grep
$data_name |
awk
-F
'[ %]+'
'{print $5}'
`
logFile=
/tmp/jiankong
.log
#获取内存情况
mem_total=`
free
-m |
awk
-F
'[ :]+'
'NR==2{print $2}'
`
mem_used=`
free
-m |
awk
-F
'[ :]+'
'NR==3{print $3}'
`
#统计内存使用率
mem_used_persent=`
awk
'BEGIN{printf "%.0f\n",('
$mem_used
'/'
$mem_total
')*100}'
`
#获取报警时间
now_time=`
date
'+%F %T'
`
function
send_mail(){
mail -s
"监控报警"
1135960569@qq.com <
/tmp/jiankong
.log
}
function
check(){
if
[[
"$cpuUsage"
> 80 ]] || [[
"$diskUsage"
> 80 ]] || [[
"$mem_used_persent"
> 80 ]];
then
echo
"报警时间:${now_time}"
> $logFile
echo
"CPU使用率:${cpuUsage}% --> 磁盘使用率:${diskUsage}% --> 内存使用率:${mem_used_persent}%"
>> $logFile
send_mail
fi
}
function
main(){
check
}
main
本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1917501如需转载请自行联系原作者 weilovepan520
|