У меня есть простая задача, в моей компании нам нужно скачивать файлы с ftp-сервера, обычно у меня есть несколько сценариев, и они могут справиться с этим, но на одном сервере у меня есть некоторые проблемы.Когда я использую системную команду ftp, она работает нормально, файл может быть загружен, но когда я пытаюсь сделать это из perl, я получаю сообщение об ошибке «RETR» not found ».
Мои сценарии выглядят так
shell:
ftp> debug<br>
ftp> open xx.xx.xx.xx<br>
220 ProFTPD 1.3.0 Server (ProFTPD Default Installation) [xx.xx.xx.xx]<br>
ftp> cd IN<br>
---> CWD IN<br>
250 CWD command successful<br>
ftp> get somefile10112499xxx.ZIP<br>
---> PORT 3,126,181,35,14,131<br>
200 PORT command successful<br>
---> RETR somefile10112499xxx.ZIP<br>
150 Opening ASCII mode data connection for somefile10112499xxx.ZIP (13299 bytes)<br>
226 Transfer complete.<br>
ftp: 64d bajtów odebranych w 0,01Sekund 889,80Kbajtów/sek.<br>
ftp> quit<br>
---> QUIT<br>
221 Goodbye.<br>
скрипт perl:
use Net::FTP;<br>
$ftp = Net::FTP->new($FTP_HOST, Debug => 1,Passive=>0) ;<br>
$ftp->login($FTP_USER,$FTP_PASS) ;<br>
$ftp->retr("somefile10112499xxx.ZIP");<br>
$ftp->quit;<br>
Я пытаюсь использовать пассивный режим, ASCII и двоичный метод передачи, но все это делает "Net :: FTP = GLOB(0x1ee71a0) <<< 500 'RETR' не понято ". </p>
Какие-нибудь другие параметры определены по умолчанию в команде ftp?Может быть, я должен внести некоторые изменения в сценарий Perl?