最近公司领导要求,要对客户那边写一个自动化的脚本,用来监控客户那边CPU使用率和硬盘空间,并通过邮件来报警。刚好参考老男孩李导最近的案例,测试了下,可以正常使用。
CPU监控:top -n 1 查看1次就退出
1 |
Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
|
99.3%id 是未使用的CPU,剩余的都是使用的。
获取使用率
1 |
top -n 1|awk -F '[, %]+' 'NR==3 {print 100-$11}'
|
知识点2:
磁盘监控先监控/
1 |
df -h|awk -F '[ %]+' '/\/$/{print $5}'
|
知识点3:使用bc进行含有小数的大小判断
|
1
2
3
4
5
6
|
[[email protected] ~]# echo "0.1>0.01"|bc
1[[email protected] ~]# echo "0.1>0.2"|bc
0[[email protected] ~]# echo "5.6>10.3"|bc
0 |
具体步骤:
1. 配置/etc/mail.rc支持发邮件
1 |
http://oldboy.blog.51cto.com/2561410/1706911
|
2. 脚本
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
[[email protected] scripts]# cat check.sh
#!/bin/bashLANG=en_US.UTF-8cpuUsed=`top -n 1|awk -F '[, %]+' 'NR==3 {print 100-$11}'`
diskUsed=$(df -h|awk -F '[ %]+' '/\/$/{print $5}')
logFile=/tmp/jiankong.log
function Sendmail(){
} function check(){
if [ `echo"$cpuUsed>80"|bc` -eq 1 -o $diskUsed -ge 85 ];then
echo"CPU使用率:${cpuUsed}%,磁盘使用率:${diskUsed}%">$logFile
Sendmail
fi
} function main(){
check
}main |
3. 加入定时任务,每5分钟执行一次。
转载于:https://blog.51cto.com/kouhao/1916890