加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl增量分析日志

发布时间:2020-12-15 23:43:50 所属栏目:大数据 来源:网络整理
导读:#!/usr/bin/perl#取文件行数##循环开始清空文件use POSIX;use CGI;use DBI;my $dbName = 'oadb';my $dbUser = 'query';my $dbUserPass = 'query';my $dbh = DBI-connect("dbi:Oracle:$dbName",$dbUser,$dbUserPass) or die "can't connect to database " ;my
#!/usr/bin/perl
#取文件行数
##循环开始清空文件
use POSIX;
use CGI;
use DBI;
my $dbName = 'oadb';
my $dbUser = 'query';
my $dbUserPass = 'query';
my $dbh = DBI->connect("dbi:Oracle:$dbName",$dbUser,$dbUserPass) or die "can't connect to database " ;
my $dir  = '/usr/local/apache-tomcat-7.0.55_8081/logs';
my $file = 'catalina.out';
my $SDATE = strftime("%Y-%m-%d",localtime());
my $XDATE = strftime("%Y%m%d%H%M%S",localtime());
$mon_file = "$dir/$file";
if (-f "tmp.out"){
open FILE,">tmp.out";
close FILE;}

open( A,"<","count.txt" );
            while (<A>) {
            $count = $_;
                        };
print "上次记录的记录数为$countn";


open(my $fh,'<',"$mon_file");
$. = 0;
while (<$fh>) {
    ($num=$.) if eof;
              };
print "文件最新的记录数为$num"."n";
    open( B,">","count.txt" );
    print B ("$numn");

if ( defined($count)  && $num != $count && $num !=0  )
{    print "开始处理n";
     open( C,"$mon_file" ) || die "$!n";
       while (<C>) {
             if  ($. > "$count" ){ 
              open( D,">>","tmp.out" );
              print D ("$_");
             }
                  }
};
              close D;
##########监控关键字,以空格隔开################
@warn_arr = qw/ 登录失败 登陆失败 用户名或密码错误/;
foreach $a (@warn_arr)
{
                 $i   = 0;
                 $num = 0;
                   $b = 0;
               open( D,"tmp.out" ) || die "$!n"; 
               while (<D>) 
                  {
                             $num++;
                             if ( ( $_ =~ /$a/i ) && ($_ =~ /ClientAuthRealm/i) ) 
                             {
                             $i++; $b = $num ;$c = $num -1;
                             print "$b is $bn";
                             print "$c is $cn";
                             open( E,"tmp.out" ) || die "$!n";
                             while (<E>) {
                             if ( $. == "$c" ){ if ($_ =~ /.*username=(.*?)&password.*/){$USER=$1};};
                             if ( $. == "$b" ){ if ($_ =~/.*{("retCode.*?)}.*/){$err_mes=$1};
                                              if ($_ =~/(.*?),.*/){$date=$1;}
                                         }};
                             close E;
                            print "$USER is $USERn";
                            print "$err_mes is $err_mesn";
                            print "$date is $daten";
                              $dbh->do("INSERT INTO QUERY.ERR_INFO values('$USER','121.40.167.35',to_date('$SDATE','yyyy-mm-dd'),'$date||$err_mes',to_date('$XDATE','YYYYMMDDHH24MISS'))") or die($DBI::errstr);
                            
                            };
                   };
                            close D;
 };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读