功能:当Linux磁盘分区达到70%时,自动发送邮件报警,使用前提:在被监控服务器上开启sendmail即可。
#!/usr/bin/perl
$ip_addr=`/sbin/ifconfig eth0 | perl -lne 'print \$1 if/inet addr:(.*)Bcast/'`;
$ip_addr=~ s/^\s+|\s+$//g;
$admin_addr = 'youshengtao\@youxigu.com';
&check_dfusage;
exit();
sub check_dfusage {
          @diskinfo=`df`;
          $message_text = ' ';
    foreach (@diskinfo) {
            ($dirname,$arg1,$arg2,$arg3,$arg4,$arg5,$arg6) =  split (' ',$_,7);
                
            ($arg4num,$therest) = split ('%',$arg4,2);
            if ($arg4num > "70") {
                $message_text ="$ip_addr $arg5 Disk partition space usage over  $arg4num%","\n";
                                 }
                        }
                        if ($message_text ne ' ') {
                               &sendmessage;
                        }
                  }
sub sendmessage {
       open(SF,"|mail -v -s '$ip_addr  Disk Partition Warning' $admin_addr");
       print SF "$message_text";
       close(SF);
}