作者plankton (我是没人要的小孩)
看板perl
标题[问题] 用perl 连ftp抓档案遇到问题
时间Sun Feb 25 23:28:40 2007
不好意思
要麻烦各位大大帮我解惑了
我想要连到kegg ftp站里的某个资料夹 把它的里面的档案大部分都抓出来
可是我执行这个程式的时候遇到了一些问题
基本上如果抓的对象是一些小档案 可以顺利的达成
可是kegg上的档案大的也有上G..
不知道是不是档案太大? 照成问题.. 还是传输时间太久?
或是一次抓的档案太多? 还是FTP连线时有什麽需要注意的吗
对 FTP的认识不深 所以想问问各位高手的意见
=============================== 以下是程式 =========================
use strict;
use Net::FTP;
my ($site,$ftp,$directory,@line,@local,%filename);
###############目的只是为了不要抓到local端以有的档案
###############所以先建个hash纪录
@local = `ls`;
chomp (@local);
foreach (@local)
{
$filename{$_}="";
}
###########################
#################################开始连线
$site = "ftp.genome.jp";
$ftp = Net::FTP->new("$site", Debug=>0) or die "can't connect\n";
$ftp->login() or die "can't authenticate\n"; ## login
$directory = "/pub/kegg/tarfiles";
$ftp->cwd($directory);
@line = $ftp->ls(); ##取得这个目录下的所有档案名称
foreach (@line)
{
if (exists$filename{$_}) #### 如果已存在在local端就跳出
{
next;
}
unless ($_ eq 'releases') ##### 不抓档名叫做 releases 的档案
{
$ftp->get($_) or die "can't download \"$_\"\n";
print "$_"; ### 我只是想看看他抓了哪些档案
}
}
$ftp->quit() or die "can't quit\n";
==================================程式结束===========================
麻烦各位给点意见了 谢谢
*************************补上错误讯息
Unable to close datastream at getFileFromKegg.pl line 35
can't download "xxxx.xxxx.xxxx"(档案名称)
***************************
其中第35行我以颜色标出
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.177.211
1F:→ cot123:小毛你要不要把错误讯息也po出来啊? 02/26 01:06
※ 编辑: plankton 来自: 140.129.160.66 (02/27 19:26)
2F:→ plankton:我po了 Q_Q 02/27 19:26