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;
};
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
