注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

simonzhang个人观点

http://www.simonzhang.net 镜像地址

 
 
 

日志

 
 

linux 硬盘告警脚本  

2010-03-10 16:39:46|  分类: shell脚本 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

#/bin/hash
#######################set
admin_mail= Email@ ##Email地址
disk_report_limit=70  ##硬盘超出%几告警。
send_mail_more=3   ##当天告警多少次

#######################get serverinfo
server_name=`hostname`
OS=`uname`
case $OS in
   Linux) IP=`ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`;;
   FreeBSD|OpenBSD) IP=`ifconfig  | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' | awk '{ print $2}'` ;;
   SunOS) IP=`ifconfig -a | grep inet | grep -v '127.0.0.1' | awk '{ print $2} '` ;;
   *) IP="Unknown";;
esac
sh_path=`pwd`
today=`date +%d`
now_date=`date +%F' '%H:%M`

########################check log nill
if [ -f $sh_path\/mail.log ];then
  echo
else
  echo $today' 0'>$sh_path\/mail.log
fi

########################send_main
disk_send_mail()
{
send_mail_num=`cat $sh_path\/mail.log|awk '{print $2}'`
send_maillog_date=`cat $sh_path\/mail.log|awk '{print $1}'`
 if (( "$send_maillog_date" != "$today" ));then
   echo >$sh_path\/mail.log
   echo $today' 0'>$sh_path\/mail.log
   echo $server_name'. The hard disk had used.Send mail '$now_date >$sh_path\/mail.txt
   mail -s $server_name $admin_mail<$sh_path\/mail.txt
   sleep 1
   rm -f $sh_path\/mail.txt
   echo >$sh_path\/mail.log
   echo $today' 1'>$sh_path\/mail.log
 else
   if (( "$send_mail_num" < "$send_mail_more" ));then
    echo $server_name'. The hard disk had used.Send mail '$now_date >$sh_path\/mail.txt
    mail -s $server_name $admin_mail<$sh_path\/mail.txt
    sleep 1
    rm -f $sh_path\/mail.txt
    echo >$sh_path\/mail.log
    echo $today' '$[$send_mail_num+1]>$sh_path\/mail.log
   else
    echo
   fi
 fi
}

########################check disk
disk_arr=(`df -h |grep -o '[0-9]\{1,3\}\%'|awk -F% '{print $1}'`)
disk_line=`df -h |grep -o '[0-9]\{1,3\}\%'|wc -l`
i=0
while [ $i -lt $disk_line ]
 do
   disk_info=${disk_arr[$i]}
   if (( "$disk_info" > "$disk_report_limit" ));then
    disk_send_mail
   fi
 let i++
done

  评论这张
 
阅读(693)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017