shell编程磁盘监控(评估可用空间耗尽时间,邮件通知管理员)

此脚本用于监控指定磁盘/dev/md0的文件系统使用情况,当使用率超过90%时,将计算剩余可用时间和写入速度,并通过邮件通知管理员。脚本包括了磁盘速度计算、剩余时间估计、邮件内容设置等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设定监控磁盘为/dev/md0;如果文件系统使用率大于90%,则会依次调用这3个函数估算文件系统耗尽时间,并将结果邮件发给管理员。

#!/bin/bash


##This script is used to monitor disk.
#6/20/11


#定义函数计算文件系统的写入速度

function disk_speed()
{
   A=`df -k | grep "$1" | awk '{print $3}'`
   sleep 30
   B=`df -k | grep "$1" | awk '{print $3}'`
   D=`expr $B - $A`
   SPEED=`expr $D / 30`
   echo $SPEED
   unset A B D SPEED
}
#定义估计磁盘空间耗尽时间
function avai_time()
{
   FREE=`df -k | grep "$1" | awk '{print $4}'`
   if TIME=`expr $FREE / $2`
     then
       if [ $TIME -ge 60 ]
         then
          A=`expr $TIME / 60`
          echo $A" minutes"
          unset FREE TIME
          return 0
       else
          echo "Unknow"
          unset FREE TIME
          return 0
       fi
   else
       echo "Unknow"
       unset FREE TIME
       return 1
   fi
}
#定义设置邮件内容函数
function content()
{
   TEMP_FILE=/root/disk_monitor.tmp
   echo "Warning disk:"$1 >$TEMP_FILE
   echo "Used space:"$2 >>$TEMP_FILE
   echo "Available space:"$3 >>$TEMP_FILE
   echo "Use%:"$4"%" >>$TEMP_FILE
   echo "Write speed:"$5 >>$TEMP_FILE
   echo "Estimated time remaining:"$6 >>$TEMP_FILE
   echo "Now time:"`date +"%Y-%m-%d %H:%M"` >>$TEMP_FILE
   unset TEMP_FILE
   return 0
}
#定义要监控的文件系统
MON_DISK=/dev/md0
USED=`df -h | grep "$MON_DISK" | awk '{print $5}' | sed 's/%//'`
#判断使用率是否大于90%,如果是,则执行then后面的语句
if [ $USED -ge 90 ]
  then
    USED_SPACE=`df -h | grep "$MON_DISK" | awk '{print $4}'`
    AVAI_SPACE=`df -h | grep "$MON_DISK" | awk '{print $3}'`
    W_SPEED=`disk_speed $MON_DISK`
    if [ $W_SPEED != 0 ]
      then
        S_TIME=`avai_time $MON_DISK $W_SPEED`
    else
        S_TIME="Unknow"
    fi
    content $MON_DISK $USED_SPACE $AVAI_SPACE $USED $W_SPEED $S_TIME
    mail -s "Disk warning" root </root/disk_monitor.tmp
    rm -rf /root/disk_monitor.tmp
    unset MON_DISK USED USED_SPACE AVAI_SPACE W_SPEED S_TIME
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值