📄 ftp.pl
字号:
#!/usr/local/perl5/bin/perluse Getopt::Long;use Net::FTP;my $usage = "\nUsage:$0 \n\t-h <Host> \n\t-u <User> \n\t-p <Password> \n\t-f <filename >\n\t-r <Remote Dir> \n\t-o <Output Dir> -get[-put]\n\n";my ($host,$user,$pass,$rdir,$dest,$file,$p_flag,$g_flag);GetOptions("h:s"=>\$host,"u:s"=>\$user,"p:s"=>\$pass,"r:s"=>\$rdir,"o:s"=>\$dest,"f:s"=>\$file,"get"=>\$g_flag,"put"=>\$p_flag);die "$usage" if (!($host && $user && $pass && $rdir && $file));my $source_file = $rdir."/".$file;my $dest_file;if (! $dest){ $dest_file = $file;}else{ $dest_file = $dest."/".$file;} print "\nFtp host:$host\n";my $ftp = Net::FTP->new($host,Timeout=>60,Debug=>0) || die "Can't connect: $@\n";print "\nLogin:$user\nPassword:$pass\n";$ftp->login($user,$pass) || die "Couldn't authenticate, even with explicit username and password.\n";if( $g_flag) { my @a_source_file = $ftp->ls($source_file); my ($v_source_file , $v_dest_file ); foreach $v_source_file ( @a_source_file ){ print "test: $v_source_file \n"; $v_source_file =~ m/\/*([\w\.]+)\s*$/ ; $v_dest_file = $dest."/".$1; print "\nGet File:$v_source_file from $host to $v_dest_file\n"; $ftp->get($v_source_file, $v_dest_file) || die "Can't get $v_source_file : $!\n"; }} if ($p_flag){ print "\nPut File:$source_file to host $host@$source_file \n"; $ftp->put($dest_file, $source_file) || die "Can't put $file : $!\n";}$ftp->quit();exit 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -