![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| fel i produktionen av perl script | namishtiwari | Shell-programmering och Skript | 2 | 06-15-2009 06:02 |
| tr kommando ger fel output | Usha Rao | Shell-programmering och Skript | 8 | 05-08-2009 08:13 |
| Sortera kommando ger fel output | Usha Rao | Shell-programmering och Skript | 8 | 04-07-2009 09:54 |
| Perl Script fråga. Vad gör jag för fel? | SkySmart | Shell-programmering och Skript | 14 | 03-19-2009 05:22 |
| Skriva ut till en Savin - Storlek produktionsenhet fel | h1timmboy | AIX | 2 | 02-28-2006 09:19 |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
||||
|
fel produktionen i Perl-skript
Hej, Här är min kodsnutt -- Kod:
#!/usr/bin/perl
my $Time_Stamp ;
my $User_Name;
my $Success;
my $Failure;
my $ErrorCode;
my $ErrorMsg;
my $logDir = $ARGV[0];
my $logPrefix = $ARGV[1];
die "usage: $0 <logDir> <logPrefix>" unless $logDir and $logPrefix;
die "Log dir $logDir doesn't exist" unless -d "$logDir";
for my $logFile ( glob("$logDir/${logPrefix}*") )
{
open($log, "<", $logFile) or die "Can't open $logFile for reading.";
open(FP_OUT,">temp12") or die "cannot create file temp1 for writing";
print "Processing file $logFile...\n";
OUTER: while( $line = <$log> )
{
chomp($line);
if ($line =~ /^(.*)INFO:.*QNA Step - AUTH IN PROGRESS/)
{
$Time_Stamp = $1;
printf FP_OUT "$Time_Stamp,";
QnA_search_for_sucess_or_failure() ;
#QnA_search_for_userID() ;
next OUTER;
}
}
}
sub QnA_search_for_sucess_or_failure
{
OUTER1: while ( $line = <$log> )
{
if ($line =~ /QNA Auth.*Success\s*and\s*Complete/)
{
printf FP_OUT "Success,";
print STDOUT "In Success,\n";
$ErrorMsg="null";
while ( $line = <$log> )
{
if ($line =~ /ArAuthFrameworkImpl::doPostAuth.*Authentication\s*mechanism\s*returned\s*\[(..*)\]\s*for\s*AuthIdentity\s*\[(..*)\]/)
{
print "$2\n";
printf FP_OUT "$2, ${1}, $ErrorMsg\n";
last OUTER1;
}
}
}
if($line =~ /Message.*QNA\s*Auth\s*Failed\((..*)\).*/)
{
$ErrorMsg=$1;
printf FP_OUT "Failure,";
print STDOUT "In Failure,\n";
while ( $line = <$log> )
{
if ($line =~ /ArAuthFrameworkImpl::doPostAuth.*Authentication\s*mechanism\s*returned\s*\[(..*)\]\s*for\s*AuthIdentity\s*\[(..*)\]/)
{
print "$2\n";
printf FP_OUT "$2, ${1}, $ErrorMsg\n";
last OUTER1;
}
}
}
}
}
Nedanstående utdraget är hämtat från logfile.I am hjälp medan slingor eftersom det finns många rader ovan och inbetween denna sträng. Kod:
Tue May 19 22:55:13.649 2009 Morocco Standard Time INFO: pid 2172 tid 3412: 160: 10083504: QNA Step - AUTH IN PROGRESS Tue May 19 22:55:13.649 2009 Morocco Standard Time INFO: pid 2172 tid 3412: 160: 10083504: QNA Auth - Success and Complete, Returning SUCCESS Tue May 19 22:55:13.665 2009 Morocco Standard Time INFO: pid 2172 tid 3412: 17: 10083504: ArAuthFrameworkImpl::doPostAuth::1:10083487:: Authentication mechanism returned [0] for AuthIdentity [12345] and for QnA failure the line comes like this in place of success line-- Tue May 19 22:56:21.962 2009 Morocco Standard Time INFO: pid 2172 tid 688: 160: 10083554: Err[115261735], Message: QNA Auth Failed(Invalid Credentials), Repeating the challenge and Returning FAILED när jag körde programmet så här -- Kod:
C:\Perl Script>perl QnA_Authentication.pl . logfile.txt Processing file ./logfile.txt... In Success, 01503164 In Success, 01822755 In Failure, 01401058 Processing file ./logfile.txt.bak... men i utdatafilen som temp12 är det inte att skriva ut något. Vänligen föreslå vad som är fel här. |