21 use strict; 22 use warnings; 23 use Data::Dumper; 24 use Net::FTP; 25 26 our $ftp; 27 my $newerr; 28 my @files; 29 my @ERRORS; 30 my $name; 31 my $res; 32 my @radius; 33 my @radius_alt1; 34 35 $ftp = Net::FTP->new("HOST", Debug => 0) or die "Cannot connect to some.host.name: $@"; 36 $ftp->login("USER",'PWD') or die "Cannot login ", $ftp->message; 37 $ftp->cwd("/var/log/radius") or die "Cannot change working directory ", $ftp->message; 38 $newerr=0; 39 @files=$ftp->dir or $newerr=1; 40 push @ERRORS, "Can't get file list on $_ $!\n" if $newerr; 41 $ftp->quit if $newerr; 42 next if $newerr; 43 print "Got list $_\n"; 44 print Dumper(@files); #schau dir an welche files du im array hast 45 $ftp->binary(); 46 47 &process_files(\@files); 48 49 $ftp->quit; 50 51 sub process_files { 52 my @files = shift @_; 53 my $letzteAenderung = 14; #letzte Ă„nderung vor 14 Tagen 54 foreach (@files) { 55 if ( int( -M $_ ) <= $letzteAenderung ) { 56 if ($ftp->get($_)) { 57 $ftp->get($_); 58 } 59 if (`gzip.exe -d $_`) { 60 my @unzip_files = `gzip.exe -d $_`; 61 &process_files(\@unzip_files); 62 } 63 else { 64 if (-f "radius.log") { 65 open (IN,">>radius.log"); 66 print IN "$_"; 67 close IN; 68 } else { 69 open (IN,">radius.log"); 70 print IN "$_"; 71 close IN; 72 } 73 } 74 } 75 } 76 }