用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]