centos 7系统资源(CPU、内存、磁盘)自动监控并邮件告警脚本(改良版)

(前提必须可以通过ssh免密钥连接)
该方法为制定一台mail主机为系统信息收集点,用ssh从其他主机收集系统性能数据,在此主机上结合mail一并发送。

te.txt 为ip地址列表
user.txt 为邮件接收人列表

#!/bin/bash

date=`date +%Y-%m-%d_%H:%M:%S`

for ip in `cat te.txt`

do

#磁盘监控

name=`ssh root@$ip 'hostname'`

disk_use=`ssh root@$ip 'df -h' | grep "/dev/" | awk '{printf $5}' | sed 's/%/\n/g'`

for disk_use in $disk_use

if [ $disk_use -ge 5 ];then

for user in `cat user.txt`

do

echo -e "IP:$ip \n 主机名:$name \n 在$date 磁盘使用: $disk_use%" | mail -s "磁盘告警" $user

done

fi

done

#cpu监控

cpu_average=`ssh root@$ip 'top -b -n 1' | grep "load" | awk '{printf $10 $11 $12 $13}'`

cpu_use=`ssh root@$ip 'top -b -n 1' | grep "Cpu" | awk '{printf $2}' | cut -d "." -f 1`

if [[ $cpu_use -ge 2 ]];then

for user in `cat user.txt`

do

echo -e "IP:$ip \n 主机名:$name \n 在$date CPU 使用:$cpu_use% \n 过去1分钟、5分钟、15分钟CPU平均值为:$cpu_ave
rage" | mail -s "CPU告警" $user

done

fi

#内存监控

men_use=`ssh root@$ip 'free' | awk '/Mem/{printf("%.2f\n"), $3/$2*100}' | cut -d "." -f 1`

if [ $men_use -ge 1 ];then

for user in `cat user.txt`

do

echo -e "IP:$ip \n 主机名:$name\n 在$date 内存使用: $men_use%" | mail -s "内存告警" $user

done

fi

done
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值