Получение следующей ошибки: zcat: stdin: неожиданный конец файла

У меня есть Perl-скрипт, который я пытаюсь выполнить в RHEL (Linux) 6.6, и я получаю следующую ошибку. Может быть, пожалуйста, руководство, что я делаю неправильно в этом скрипте Perl:

 #!/usr/bin/perl

 use strict;

 open( LOG, ">>/tmp/test.log" ) or die;

 my $application;
 my $format = "%-10s %-50s Login Fails %7s\n";

 for ( my $i = 0 ; $i <= $#ARGV ; $i++ ) {

     print LOG "i=$i arg is <$ARGV[$i]>\n";
     if ( $i == 2 ) {
         my $tmp = $ARGV[$i];

         #               print LOG "**** found $tmp\n";
         grep ( s/.*SYSTEM=\"(.*)\"/$application=$1/e, $tmp );

         #               print LOG "**** extracted <$application>\n";
     }
 }

 # arg 7 has the gzipped output

 print LOG "\n";

 my @file = `/bin/zcat $ARGV[7]`;

 #print LOG "printing zcat file \n";
 for ( my $i = 1 ; $i &lt;= $#file ; $i++ ) {
     chomp $file[$i];
     my ( $uid, $email, $count ) = split( /,/, $file[$i] );

     #   print LOG "$uid login fails = $count\n";
     $count = commify($count);
     printf LOG ( $format, $uid, $email, $count );
     mailit( $uid, $email, $count );
 }

 print LOG "\nExit\n\n";

 exit;

 sub commify {

     # commify a number. Perl Cookbook, 2.17, p. 64
     my $text = reverse $_[0];
     $text =~ s/(\d\d\d)(?=\d)(?!\d*\.)/$1,/g;
     return scalar reverse $text;
 }

 sub mailit {

     my ( $uid, $email, $count ) = @_;
     open( HELP, "/opt/splunk/bin/scripts/lockout.help" ) or die " no          help\n";
     my @help = <HELP>;
     close HELP;

     my $date = `/bin/date`;
     chomp $date;
     my $program = $0;

     my $message;
     $message = $message . "Program: $program&lt;br/&gt;";
     $message = $message . "Date:    $date&lt;br/&gt;";
     $message = $message . "Email:   $email&lt;br/&gt;";
     $message = $message . "User:    $uid&lt;br/&gt;";
     $message = $message . "Failure Count:   $count<p>";

     foreach (@help) {
         chomp;
         $message = $message . $_;
     }

     open( MAIL, "|/usr/sbin/sendmail -t" );
 ## Mail Header
     print MAIL "To: Mohiuddin, Mohammed\@truvenhealth.com\n";
     print MAIL "From: Security\@truvenhealth.com\n";
     print MAIL "Subject: Failed Logins ACTION REQUIRED!\n";
 ## Mail Body

     print MAIL "Content-Type: text/html; charset=utf-8\n\n" . "<html><head>    </hea
 d&gt;&lt;body&gt; &lt;font face=\"verdana\"&gt;$message&lt;/font&gt; ";

  close(MAIL);
 }

Поэтому я был бы признателен, если бы кто-то мог помочь мне решить эту проблему.

Спасибо, я не нахожу ошибку zcat. Однако при выполнении этого скрипта я получаю следующее:

  Global symbol "$text" requires explicit package name at ./lockout.pl      line     55.
Can't use global @_ in "my" at ./lockout.pl line 61, near "= @_"
Can't use global $0 in "my" at ./lockout.pl line 68, near "= $0"
Can't use global $_ in "my" at ./lockout.pl line 79, near ". $_"
syntax error at ./lockout.pl line 93, near "}"

0 ответов

Другие вопросы по тегам