我从正在删除的旧服务器继承了旧的Perl脚本。该脚本需要在新服务器上实现。我已经把它放在新服务器上了。
脚本非常简单;它通过expect& amp; ssh到网络设备并收集数据。出于调试目的,我只使用从设备收集接口列表的部分。
新服务器上的脚本总是在重新加载后大约5秒钟内显示一个页面。很少,它包括远程设备的接口列表。最常见的是,它包含除接口列表之外的所有HTML元素。
现在,在旧服务器上,有时脚本需要20秒才能输出数据。那很好。
基于此,似乎新服务器上的apache在Perl脚本完成返回数据之前显示数据,但这肯定是不正确的。
其他信息: 不幸的是,我无法发布任何代码 - 工作政策。但是,我很确定这不是预期的问题。期望部分写为expect()或die('error msg'),我没有看到错误消息。但是,如果我将expect timeout设置为0,那么我确实会看到错误消息。
脚本中使用的期望超时值通常为20秒......但正如我上面提到的,apache在大约5秒后显示脚本中的静态内容,并且95%的时间不显示应该显示的内容从期待中获取。此外,该脚本将期望内容写入驱动器上的文件 - 即使页面未显示它。
答案 0 :(得分:3)
我刚刚将我的Troubleshooting Perl CGI scripts指南添加到了Stackoverflow。 :)
答案 1 :(得分:1)
您可以尝试CGI::Inspect。我不需要自己尝试,但我看到它demonstrated at YAPC,它看起来很棒。