blob: 4503b0837c483d0fbb7bb02980574ce28940d4e6 [file] [log] [blame]
#!/usr/bin/env perl
################################################################################
## ##
## Copyright (c) International Business Machines Corp., 2008 ##
## ##
## This program is free software; you can redistribute it and#or modify ##
## it under the terms of the GNU General Public License as published by ##
## the Free Software Foundation; either version 2 of the License, or ##
## (at your option) any later version. ##
## ##
## This program is distributed in the hope that it will be useful, but ##
## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ##
## for more details. ##
## ##
## You should have received a copy of the GNU General Public License ##
## along with this program; if not, write to the Free Software ##
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ##
## ##
## Author: Veerendra <veeren@linux.vnet.ibm.com> ##
################################################################################
use File::Temp 'tempdir';
use Net::FTP;
use File::Path;
if ($#ARGV == -1) {
print "usage: $0 host\n";
exit 1;
}
my $host = $ARGV[0];
my $newname;
my $i = 0;
my $kount = 51;
my $file="junkfile";
my $tmpdir = "/var/ftp";
my $dir;
$dir = tempdir("container_ftp.XXXXXXX", DIR => $tmpdir);
if (!defined($dir)) {
push @ERRORS, "Failed to create a temporary directory: $!\n";
printerr();
}
if (chmod(0777, $dir) == 0) {
push @ERRORS, "Failed to change mode for temporary directory: $!\n";
printerr();
}
system("dd if=/dev/zero of=$dir/$file bs=512 count=10 > /dev/null 2>&1 ");
while ( $i < $kount )
{
$ftp=Net::FTP->new($host,Timeout=>240) or $newerr=1;
push @ERRORS, "Can't ftp to $host: $!\n" if $newerr;
printerr() if $newerr;
$ftp->login("anonymous","passwd") or $newerr=1;
push @ERRORS, "Can't login to $host: $!\n" if $newerr;
$ftp->quit if $newerr;
printerr() if $newerr;
$basedir = `basename "$dir"`;
chomp $basedir;
$ftp->cwd($basedir) or $newerr=1;
push @ERRORS, "Can't cd $!\n" if $newerr;
$ftp->quit if $newerr;
printerr() if $newerr;
$newname = $file . "_" . $i ;
$ftp->get($file,$newname) or $newerr=1;
push @ERRORS, "Can't get file $file $!\n" if $newerr;
printerr() if $newerr;
$i++;
$ftp->quit;
}
sub printerr {
print "Error: ";
print @ERRORS;
exit 1;
}
END {
rmtree("$dir");
}