我是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.
先谢谢
答案 0 :(得分:2)
这通常意味着NLST命令的结果(即ls)大于库的某个预先配置的阈值。