加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

PERL FTP模块

发布时间:2020-12-16 00:02:38 所属栏目:大数据 来源:网络整理
导读:package MYFTP;use Net::FTP;sub new{my $class = shift;#一个空的引用my $ref = {};#将引用和对象绑定bless($ref,$class);#返回引用return $ref;}#FTP下载文件sub DownLoadFtpFile{my $ref = shift;my $FtpServer = shift;my $Ftpport = shift;my $Ftpuser
package MYFTP;
use Net::FTP;
sub new
{
my $class = shift;
#一个空的引用
my $ref = {};
#将引用和对象绑定
bless($ref,$class);
#返回引用
return $ref;
}
#FTP下载文件
sub DownLoadFtpFile
{
my $ref = shift;
my $FtpServer = shift;
my $Ftpport = shift;
my $Ftpuser = shift;
my $FtpPassWord = shift;
my $FtpLocalSavePath = shift;
my $FtpRemotePath = shift;
my @FtpDownloadFile = @_;
print "nFtp 正在建立连接 IP:$FtpServer 端口:$Ftpport 用户名:$Ftpuser  密码:$FtpPassWord n";
my $ftp = Net::FTP->new($FtpServer,Port=>$Ftpport,Debug => 0,Timeout => 600) or die "Cannot connect.n";
print "n连接成功,开始登陆.......n";
$ftp->login($Ftpuser,$FtpPassWord) or die "Could not login.n";
print "n登陆成功,开始下载文件.......n";
$ftp->cwd($FtpRemotePath) or die "Cannot change working directory.n";
#文件全部下载成功退出死循环
while(@FtpDownloadFile)
{
my $Index = 0;
my $ArraySize = @FtpDownloadFile;
foreach my $File (@FtpDownloadFile)
{
my $FtpDownLocalSavePath = $FtpLocalSavePath . "/$File";
my $Return = $ftp->get($File,$FtpDownLocalSavePath);
if($Return eq undef)
{
print "n下载$File文件失败n";
next;
}
print "n下载$File文件成功n";
delete $FtpDownloadFile[$Index];
$Index++;
}
}
print"n全部下载成功.......n";
$ftp->quit;
}
#FTP上传载文件
sub UpLoadFtpFile
{
my $ref = shift;
my $FtpServer = shift;
my $Ftpport = shift;
my $Ftpuser = shift;
my $FtpPassWord = shift;
my $FtpRemotePath = shift;
my @FtpUploadFile = @_;
print "nFtp 正在建立连接 IP:$FtpServer 端口:$Ftpport 用户名:$Ftpuser  密码:$FtpPassWord n";
my $ftp = Net::FTP->new($FtpServer,开始上传文件.......n";
$ftp->cwd($FtpRemotePath) or die "Cannot change working directory.n";
#文件全部下载成功退出死循环
while(@FtpUploadFile)
{
my $Index = 0;
foreach my $File (@FtpUploadFile)
{
my $Return = $ftp->put($File);
if($Return eq undef)
{
print "n上传$File文件失败n";
next;
}
print "n上传$File文件成功n";
delete $FtpUploadFile[$Index];
$Index++;
}
}
print"n全部上传成功.......n";
$ftp->quit;
}
#模块结束标识
1;

?

?

?

?

?

?

?

use MYFTP;
my $server = "10.92.209.156";
my $port = "21";
my $user = "root";
my $pw = "root";
my $LocalSavePath = "E:/22222/Test";
my $RemotePath = "/home/songbaisen";
my @DownloadFile;
push @DownloadFile,"hell.pl";
push @DownloadFile,"CELL0.csv";
my $Ftp = MYFTP->new();
#&DownLoadFtpFile($server,$port,$user,$pw,$LocalSavePath,$RemotePath,@DownloadFile);
$Ftp->UpLoadFtpFile($server,@DownloadFile);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读