#!/usr/bin/perl use Net::FTP; use Archive::Zip; use IO::File ; print "Retrieving file from log.abc.com...\n"; $loginip='123.678.90.18'; $loginid='nkt123'; $loginpaswd='12345678'; ($sec,$min,$hour,$mday,$mon,$year)=(localtime(time))[0,1,2,3,4,5]; $time_stamp= "_" . (1900+$year) . "_" . ($mon+1) . "_" . ($mday) . "_" . $hour . "_" . $min . "_". $sec; printf "time stamp = $time_stamp\n"; unless(-d "temp") { mkdir("temp"); } if( -d "temp") { chdir("temp"); } $ftp = Net::FTP->new(($loginip), Debug => 0) or die "Cannot connect to log.abc.com: $@ \n"; $ftp->login($loginid,$loginpaswd) or die "Cannot login ", $ftp->message; $source_dir="/nt/logs/nali05/"; $ftp->cwd($source_dir) or die "Cannot change working directory ", $ftp->message; $ftp->binary || die "Unable to set mode to binary. ", $ftp->message; @list=$ftp->ls(); printf "list = \n"; print @list; foreach $file (@list) { $ftp->get($file) or die "get failed ", $ftp->message; my $zipname = $file; my $destinationDirectory = 'C:\Perl Script\temp'; my $zip = Archive::Zip->new($zipname); foreach my $member ($zip->members) { next if $member->isDirectory; (my $extractName = $member->fileName) =~ s{.*/}{}; $member->extractToFileNamed( "$destinationDirectory/$extractName"); } #rename($file,"${file}_${time_stamp}"); $ftp->delete ($file) or die "rm -rf failed ", $ftp->message; } #} $ftp->quit;