0

我是 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.

提前致谢

4

1 回答 1

2

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

于 2012-10-19T18:21:39.177 回答