shirobert 发表于 2018-8-31 07:48:30

用Perl脚本实现FTP的文件下载

  #提取数组信息,将不同的系统信息进行归类,大概有11类操作系统及机台系统
  foreach $data (@raw_data)
{  if ($data =~ /LTXC/) {
  my $position = rindex ($data,"LTXC");
  $data = substr ($data,$position,5);
  push(@LTX, "$data");
  }
  elsif ($data =~ /LHT-/) {
my $position = rindex ($data,"LHT-");  $data = substr ($data,$position,6);
  push(@LHT, "$data");
  }
  elsif ($data =~ /LMX-/) {
my $position = rindex ($data,"LMX-");  $data = substr ($data,$position,6);
  push(@LMX, "$data");
  }
  elsif (($data =~ /HP93K/) && (!($data =~ /L/))){
my $position = rindex ($data,"HP93K");  $data = substr ($data,$position,7);
  push(@HP93, "$data");
  }
  elsif (($data =~ /HP93K/) && ($data =~ /L/)){
my $position = rindex ($data,"HP93K");  $data = substr ($data,$position,8);
  push(@HP93, "$data");
  } elsif ($data =~ /HPPS-/){
  my $position = rindex ($data,"HPPS-");
  $data = substr ($data,$position,7);
  push(@HPPS, "$data");
  }
  elsif ($data =~ /HPQD-/){
my $position = rindex ($data,"HPQD-");  $data = substr ($data,$position,7);
  push(@HPQD, "$data");
  }
  elsif ($data =~ /HPLC-/){
my $position = rindex ($data,"HPLC-");  $data = substr ($data,$position,7);
  push(@HPLC, "$data");
  }
  elsif ($data =~ /IFLEXC/){
my $position = rindex ($data,"IFLEXC");  $data = substr ($data,$position,8);
  push(@IFLEX, "$data");
  }
  elsif ($data =~ /UFLEX-/){
my $position = rindex ($data,"UFLEX-");  $data = substr ($data,$position,8);
  push(@UFLEX, "$data");
  }
  elsif ($data =~ /UFHD-/){
my $position = rindex ($data,"UFHD-");  $data = substr ($data,$position,7);
  push(@UFLEX, "$data");
  }
  elsif (($data =~ /CAT-\d\d\d/) && (!($data =~ /T$/)) && (!($data =~ /isolated/))){
my $position = rindex ($data,"CAT-");  $data = substr ($data,$position,7);
  push(@CAT, "$data");
  }
  elsif (($data =~ /CAT-\d\d/) && (!($data =~ /T$/)) && (!($data =~ /isolated/))){
my $position = rindex ($data,"CAT-");  $data = substr ($data,$position,6);
  push(@CAT, "$data");
  }
  elsif (($data =~ /TGR-/) && (!($data =~ /T$/))) {
my $position = rindex ($data,"TGR-");  $data = substr ($data,$position,6);
  push(@TGR, "$data");
  }
  }
#根据$arg1,确定要收集那些机台的数据  if (($arg1 =~ /^LTXC$/) || ($arg1 =~ /^LHT$/) || ($arg1 =~ /^LMX$/) || ($arg1 =~ /^HP93$/) || ($arg1 =~ /^HP93L$/) || ($arg1 =~ /^HPPS$/) || ($arg1 =~ /^HPQD$/) || ($arg1 =~ /^HPLC$/) || ($arg1 =~ /^IFLEXC$/) || ($arg1 =~ /^UFLEX$/) || ($arg1 =~ /^UFHD$/)|| ($arg1 =~ /^CAT$/) || ($arg1 =~ /^TGR$/)){
  print "Collecting for all $arg1\n";
  @tester = @$arg1;
  }
  elsif (($arg1 =~ /^LTXC\d$/) || ($arg1 =~ /^LHT-\d\d$/) || ($arg1 =~ /^LMX-\d\d$/) || ($arg1 =~ /^HP93KC\d$/) || ($arg1 =~ /^HP93KC\dL$/) || ($arg1 =~ /^HPPS-\d\d$/) || ($arg1 =~ /^HPQD-\d\d$/) || ($arg1 =~ /^HPLC-\d\d$/) || ($arg1 =~ /^IFLEXC\d\d$/) || ($arg1 =~ /^IFLEXC\d$/) || ($arg1 =~ /^UFLEX-\d\d$/) || ($arg1 =~ /^UFHD-\d\d$/) || ($arg1 =~ /^CAT-\d\d$/) || ($arg1 =~ /^CAT-\d\d\d$/)|| ($arg1 =~ /^TGR-\d\d$/) ){
print "Collecting tester $arg1\n";  @tester = ("$arg1");
  }
  elsif ($arg1 =~ /^ALL$/) {
print "Collecting for all tester\n";  @tester = (@LTX, @LHT, @LMX, @HP93, @HPPS, @HPQD, @HPLC, @IFLEX, @UFLEX, @UFHD, @CAT, @TGR);
  }
  else {
print "Usage Tester_config_download.pl var1\n";  print "var1 = HPPS      --> run for all HPPS\n";
  print "var1 = HPPS-01   --> run for HPPS-01\n";
  print "var1 = ALL --> run for all tester\n";
  print "supported tester platforms are LTX, LHT, LMX, HP93, HPPS, HPQD, HPLC, IFLEX, UFLEX, UFHD\n";
  exit 1
  }
#根据不同的机台类型在服务器上建立相应的目录  @tester = sort(@tester);
  foreach $element (@tester){
  if( !-d "$Dir_server/$element") {
  mkdir "D:/inetpub/ftproot/OTPMS/$element";
  }
  chdir "D:/inetpub/ftproot/OTPMS/$element";
  print "D:/OTPMS/$element\n";
  if ( (!($element =~ /CAT/)) && (!($element =~ /TGR/)) ){
  print "starting ftp to $element \n";
  #建立连接
$ftp = connect_ftpserver();  # 开始下载文件
  $ftp->binary();
  hosts_retry:
  $err=0;
  if ($element =~ /LTXC*|LHT-*|LMX-*/) {
  $ftp->cwd($Dir_tester_lcx);
  print "$Dir_tester_lcx\n";
  mget($ftp, ".iu_all_output");
  }
  elsif ($element =~ /^HP93KC\d$/) {
$ftp->cwd($Dir_tester_hp);  mget($ftp, "di_log_file_$year.$month.$date*");
  }
  elsif ($element =~ /^HP93KC\dL$/) {
$ftp->cwd($Dir_tester_hp);  mget($ftp, "di_log_file_$year.$month.$date*");
  }
  elsif($element =~ /HPPS-*|HPQD-*|HPLC-*/){
$ftp->cwd($Dir_tester_hp);  mget($ftp, "di_log_file_$year.$month.$date*");
  }
  elsif($element =~ /IFLEXC*|UFLEX-*|UFHD-*/){
$ftp->cwd($Dir_tester_tera_win) or warn $ftp->message;  print "$Dir_tester_tera_win\n";
  mget($ftp, "IGXLEventLog.$month.$date.$year*");
  }
$ftp->quit();  }

页: [1]
查看完整版本: 用Perl脚本实现FTP的文件下载