raksmart活动促销

分享

写回答

发帖

[求助]用perl脚本从其它服务器下载文件超时的问题

互联网出海创业 互联网出海创业 3019 人阅读 | 5 人回复

发表于 2008-1-9 11:48:38 | 显示全部楼层 |阅读模式

  1. #!/usr/bin/perl
  2. use Net::FTP;

  3. $ftp = Net::FTP->new("218.30.23.102", Debug=>0);

  4. $ftp->login('anonymous','webmaster@qhere.com');
  5. $ftp->binary;
  6. $ftp->cwd("/gametom/down5/oldown/");
  7. $ftp->pasv();
  8. $ftp->get("20041208_planetside.rar",'/home/fanqi0/public_html/down/200801/20041208_planetside.rar');

  9. $ftp->quit;
复制代码
要从其它服务器传输一些GB级的文件到lunarpages的虚拟主机
Lunarpages的虚拟主机不能ssh登录,并且没有wget程序,所以通过“cron jobs”直接用wget下载的方法无法使用


用FTP的site to site模式,莫名其妙的无法建立数据传输连接


然后想到用perl脚本进行下载。



问题是,使用如上code中的perl脚本和cron job启动下载了几MB之后,就超时自动终止了。
也不知道这个timeout是哪个程序负责监视的。
收到的cron报告信:
  1. Timeout at /usr/lib/perl5/5.8.8/Net/FTP.pm line 491
复制代码
请问这个超时的时限可否在perl脚本内设置?

回答|共 5 个

大漠孤狼

发表于 2008-1-9 15:10:32 | 显示全部楼层

不清楚是哪里限制的

minidxer

发表于 2008-1-9 15:15:58 | 显示全部楼层

$ftp = Net::FTP->new("218.30.23.102", Debug=>0,Timeout=>9999);
TimeOut第几个参数忘记了,自己试一下

fanqi1234

发表于 2008-1-9 16:29:32 | 显示全部楼层

的确是楼上说的那个参数,但是现在搞不清楚这里的timeout是指大文件传输的整体时间,还是说传输中断后的等待时间。

从国内内陆服务器往国外服务器传输可能无法稳定保持连接。写断点续传又是个大麻烦……perl基本上不会用……


忧伤b小调

发表于 2008-1-10 00:26:50 | 显示全部楼层

我,

门外汉.

fanqi1234

发表于 2008-1-10 04:35:15 | 显示全部楼层

试了,是中断后等待时间。两边的网络质量太差了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则