我有两个AIX主机,两个都安装了相同版本的Perl(5.10.1),都安装了LWP :: Simple模块。我运行了几个Perl单行程序从IBM的RAM下载文件。
他们使用LWP :: Simple首先验证模块是否存在,然后在某个URL获取资源(文件)的头以获取文件大小,然后最终下载该文件。它在主机#1上工作正常,但在主机#2上我遇到了几个不同的错误。
perl -e 'eval { require LWP::Simple; } or die 0;'
这两个都没有问题。我已经测试过它在未安装LWP :: Simple模块的机器上按预期死亡。
perl -e 'use LWP::Simple; my @info = head("<URL here>"); die("-1 \$!") unless @info; print "$info[1]\n";'
在问题主机上,我在这里得到“路径名中的文件或目录不存在”,我觉得这很奇怪,因为这是(我认为?)一个Unix错误,但我无法重现这个工作主机(#1)甚至为此命令提供垃圾URL。
perl -e 'use LWP::Simple; my $localfile = "<target file name here>"; my $url = "<URL here>"; my $status = getstore($url, $localfile); die "-1 \$!" unless is_success($status);'
我在问题主机上运行时遇到501错误。
为了清楚起见,我重新格式化了这些陈述;它实际上是通过SSH.NET从C#应用程序调用的。请原谅错别字;结果是它在AIX主机#1上运行得非常好,而在AIX主机#2上完全没有。
任何人都有想法如何进一步排查?