を使用して、Perl スクリプトに渡す引数のリストがありますARGV
。4 番目の引数はサーバーの名前ですが、 というサーバーのリストを含むテキスト ファイルを渡したいと思いますservers.txt
。それを渡して引数として使用するにはどうすればよいARGV
ですか?
サンプルファイルservers.txt
:
server1
server2
server3
作業コード:
# usage example: ./test.pl Jul 05 2010 <server> <logfile>
# $ARGV[0]=Jul
# $ARGV[1]=05
# $ARGV[2]=2010
# $ARGV[3]=server
# $ARGV[4]=/pathoffile
use strict;
use warnings;
my($mon,$day,$year,$server,$file) = @ARGV;
open(my $fh,"ssh $server cat $file |") or die "can't open log $server:$file: $!\n";
while (my $line = <$fh>) {
if ($line =~ /.* $mon $day \d{2}:\d{2}:\d{2} $year:.*(ERROR:|backup-date=|backup-size=|backup-time=|backup-status)/) {
print $line;
}
}