ftp.pl

上一篇 / 下一篇  2008-11-12 14:59:15 / 个人分类:Perl silent installation

use Net::FTP::Recursive ();

$emsVersion = &readEmsVersion("emsversion.ini");

$hostname = "HOSTNAME";
$username = "USERNAME";
$passwd = "PASSWD";
#$zFile = "ems.$emsVersion.tar.Z";
$mainDir = "/ems";
$emsDir = "Panorama_V$emsVersion";
$envFile = "env.ini";
$lMainDir = "C:\\Panorama";
$lFileDir = "$lMainDir\\Panorama_V$emsVersion";

##Read environment value from env file.
&readEnv;

chdir $lFileDir
 or die "Can't cd to $lFileDir";
 
$ftp = Net::FTP::Recursive->new($hostname, Debug => 0)
  or die "Cannot connect to $hostname: $@";

$ftp->login($username, $passwd)
  or die "Cannot login ", $ftp->message;

$ftp->binary;

$ftp->cwd($mainDir)
  or die "Cannot change working directory ", $ftp->message;

$ftp->rmdir($emsDir, 'true');
 
$ftp->mkdir($emsDir)
  or die "Cannot create the directory ", $ftp->message;

$ftp->cwd($emsDir)
  or die "Cannot change working directory ", $ftp->message;

print "Upload...\n";

$ftp->rput()
 or die "put failed ", $ftp->message;
 
$ftp->quit;
exit;

sub readEmsVersion {
 my ($filename, $emsVersion) = @_;
 open FILE, $filename
  or die "Can't open the file: $filename! ($!)";
 chomp($emsVersion = <FILE>);
 close FILE;
 $emsVersion;
} # end sub readEmsVersion

sub readEnv {
 my ($name, $value, $num, @field);
 open FILE, $envFile
  or die "Can't open the file: $envFile! ($!)";
 while(<FILE>){
  chomp;
  # go to next while if a line in $envFile is an empty or its first char is #
  next if ($_ eq "" || /^#/);
  @field = split /=/, $_;
  # get the amount of @field's element
  $num = @field;
  die "The value should be inside the \"\", please check your $envFile file.\n" if ($num < 2);
  $value = pop @field;
  $name = pop @field;
  $name =~ s/^\s+|\s+$//g;
  $value =~ s/^"|"$|^\s+|\s+$//g;
  $value =~ s/EMSVERSION/$emsVersion/g;
  die "Find an empty attribute name, please check your $envFile file.\n" if ($name eq "");
  if ($name eq $hostname){
   $hostname = $value;
  }elsif ($name eq $username){
   $username = $value;
  }elsif ($name eq $passwd){
   $passwd = $value;
  }
  ## next will goto here
 }
 close FILE;
} # end sub readEnv


TAG: Perl ftp

 

评分:0

我来说两句

日历

« 2024-05-16  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 48367
  • 日志数: 80
  • 建立时间: 2008-10-27
  • 更新时间: 2009-07-17

RSS订阅

Open Toolbar