perl NET :: FTP ls给出了参数太长的错误

时间:2012-10-19 16:46:15

标签: linux perl ftp

我是Linux和perl的新手。我们的一个linux盒子上有一个perl脚本,它从另一台linux机器上下载每日生成的日志文件。这个脚本在两个月前停止了,现在当我试图再次运行时,它正在给出“Net :: FTP = GLOB(0x87423fc)<<< 550 Arguments too long”错误,我查找了源文件上的文件,发现到目前为止已经创建了大约36000个日志文件。

用于测试目的 1.)我使用linux ftp命令连接到源机器并使用ls列出文件,这是成功的。 2.)我还登录到源计算机并将ls命令运行到日志文件目录中,并成功列出了文件。

任何人都可以请问为什么这个perl脚本的情况是从服务器获取550错误代码以列出这些文件?

以下是我们用来下载文件的perl脚本的调试日志跟踪: -

Net::FTP>>> Net::FTP(2.77)
Net::FTP>>>   Exporter(5.58)
Net::FTP>>>   Net::Cmd(2.28)
Net::FTP>>>   IO::Socket::INET(1.31)
Net::FTP>>>     IO::Socket(1.30)
Net::FTP>>>       IO::Handle(1.27)
    Net::FTP=GLOB(0x87423fc)<<< 220 hostname.server FTP server (Version wu-2.6.2-5-ncx-1 Wed Jun 29 14:53:11 CEST 2005) ready.
    Net::FTP=GLOB(0x87423fc)>>> USER USR
    Net::FTP=GLOB(0x87423fc)<<< 331 Password required for USR.
    Net::FTP=GLOB(0x87423fc)>>> PASS ....
    Net::FTP=GLOB(0x87423fc)<<< 230 User USR logged in.  Access restrictions apply.
    Net::FTP=GLOB(0x87423fc)>>> CWD /backup
    Net::FTP=GLOB(0x87423fc)<<< 250 CWD command successful.
    Net::FTP=GLOB(0x87423fc)>>> PORT 192,168,1,154,217,0
    Net::FTP=GLOB(0x87423fc)<<< 200 PORT command successful.
    Net::FTP=GLOB(0x87423fc)>>> NLST
    Net::FTP=GLOB(0x87423fc)<<< 550 Arguments too long
    Net::FTP=GLOB(0x87423fc)>>> QUIT
    Net::FTP=GLOB(0x87423fc)<<< 221-You have transferred 0 bytes in 0 files.
    Net::FTP=GLOB(0x87423fc)<<< 221-Total traffic for this session was 393 bytes in 0 transfers.
    Net::FTP=GLOB(0x87423fc)<<< 221-Thank you for using the FTP service on hostname.server
    Net::FTP=GLOB(0x87423fc)<<< 221 Goodbye.

先谢谢

1 个答案:

答案 0 :(得分:2)

这通常意味着NLST命令的结果(即ls)大于库的某个预先配置的阈值。