Chinaunix首页 | 论坛 | 博客
  • 博客访问: 519809
  • 博文数量: 126
  • 博客积分: 851
  • 博客等级: 准尉
  • 技术积分: 1287
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-06 11:21
个人简介

个人最新博客地址http://www.skylway.com/

文章分类

全部博文(126)

文章存档

2016年(2)

2014年(60)

2013年(35)

2012年(29)

分类: Python/Ruby

2012-12-06 17:41:29

#!/usr/bin/perl
#make by skylway 20121203
use warnings;
use strict;
use POSIX qw(strftime);
use Encode;

#日志文件相关变量
my $path="你的路径";
my $logday=strftime("%Y%m%d",localtime(time));
my $logfile="$path/filter_$logday\_1.log";
my $mydate=strftime("%Y%m%d:%H%M%S",localtime(time));
my $myhour=strftime("%H",localtime(time));

#mon_sms_file.tag定义记录文件大小
my $tmpfile="/tmp/.127glsms/mail_v1.tmp";
my $maillog="/tmp/.127glsms/mail_v1.log";
my $mylogfile="/tmp/.127glsms/smslog_v1.log";
#my $mailcmd="/usr/bin/bsmtp";
my %smstotal;
my $seekpos;
my %filter;
#定义函数,获取文件大小
sub getlogsize(){
    my $file=$logfile;
    open(LOG,">/tmp/.127glsms/monsms114filesize.log")||die "ERROR:cann't open $!";
    my $size= -s $file;
    print LOG "$file $size\n";
    close (LOG);
}
#定义函数,分析查看日志文件
sub viewlog(){

        my $file=$logfile;
        my $logsize;
        if ( ! -d "/tmp/.127glsms/"){
        mkdir "/tmp/.127glsms/";
        }
        if( $myhour < 1){
        unlink "/tmp/.127glsms/monsms114filesize.log";
        }
    if (-f "/tmp/.127glsms/monsms114filesize.log"){
            open(TAGF,"/tmp/.127glsms/monsms114filesize.log");


          while(){
                    $seekpos=(split/\s+/,$_)[1];
            #print "$seekpos\n";
            }
        close(TAGF);
        open(FFFF,$file)||die "ERROR:$!";
        seek(FFFF,$seekpos,0);


        while(){
                  chomp;

                if(/\A.*(86\d\d\d\d\d\d\d\d\d\d\d)\-\>.*CF:(.*)HIT_B:(.*)Rule.*MSG:(.*)\Z/){
                        my $user=$1;
                        my $cf=$2;
                        my $ukey=$3;
                       
                        my $msg=$4;
                        $filter{$ukey}++;
                        my $userstr="$user||$cf||$ukey||$msg";
                        $smstotal{$userstr}++;

                        #my $ustr="$user||$uwhere||$msg";
                        #my $uipstr="$uip||$ipwhere||$msg";
                        #my $userip="$uip||$user||$msg";
                        #if($status=~/成功/){
                         #       $hashustr{$ustr}++;
                          #      $hashuipstr{$uipstr}++;
                                #if($ipwhere !~/移动/){
                           #             $hashuseripstr{$userip}++;
                                #}
                        #}
                }

        }
    }    


        open(MLGF,">>$tmpfile")||die "ERROR:$!";
        print MLGF "################################## 127FILTER SMS114 LOG MONITOR ##################################\n\n";
        
        foreach(sort  {$filter{$b} <=> $filter{$a}} keys %filter){
                if($filter{$_} > 10){
                        print MLGF "\n数量:$filter{$_}  || 过滤类型及名称: $_\n";
                }
        }
     
        foreach(sort {$smstotal{$b} <=> $smstotal{$a}} keys %smstotal){
                if($smstotal{$_} > 5){
                        print MLGF "\n数量:$smstotal{$_}  || 过滤内容情况:$_\n";
                }
        }
        
        close(MLGF);
        getlogsize();
}

sub sendmail(){

        my $myweek=`date +\%u`;
        my $mailsize= -s "$tmpfile";
        my $dataline = `cat $tmpfile |wc -l`;
        my $hour = strftime("%H",localtime(time));

        if(-f "$tmpfile" && $dataline >1 ){
                if($myweek=~/1|2|3|4|5/ && $hour >= 1 && $hour < 18){
                        system("cat $tmpfile > $maillog");
                      system("cat $maillog |/usr/bin/bsmtp -f 发送邮箱 -s \"主题\" -h smtp.api.localdomain 你的邮箱");  
                }else{
                        system("cat $tmpfile > $maillog");
                        ssystem("cat $maillog |/usr/bin/bsmtp -f 发送邮箱 -s \"主题\" -h smtp.api.localdomain 你的邮箱");
                        
                }
        }

        unlink ("$tmpfile");
}

###mail scripts####
viewlog();
sendmail();
阅读(1174) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~