自动判断/dev/sd*目录下有多少块硬盘多少个分区,然后自动检测是否超过使用限额,根据使用情况自动生成mail警报或者生成本地报告.

#!/bin/bash
#
sd=$(df -h | grep "^/dev/sd*" | awk '{print $5}' | sed s/%//) #生成循环列表
for dis in $sd ;do #列表循环
if [ $dis -ge 90 ];then #判断使用率是否超过90%,超过自动发mail报警
echo "The disk is full : $(df -h | grep "^/dev/sd*")" | mail -s "`date +%Y-%m-%d`The disk is full" root@127.0.0.1
elif [ $dis -le 90 ];then #判断没超过就在/tmp目录下生成报告日志
echo "`date +%Y-%m-%d`,Disk usage: $(df -h | grep "^/dev/sd*")" >> /tmp/`date +%Y-%m-%d`disk_usage.log
fi
done