我需要定期遍历网站以更新服务器缓存。这是一个数据库驱动的网站,有很多(数千个)页面。我使用 wget 在同一台服务器上本地镜像该网站,因此我使用以下命令:
wget --mirror 本地主机
过了一段时间,它突然停止并显示以下消息:
HTTP 请求已发送,正在等待响应...已终止
这种情况总是发生,但不是在同一 URL 上。我也在另一台服务器上尝试过,结果相同。
--debug 选项没有提供任何有用的信息,Apache 的日志文件也没有提供任何有用的信息。
这个问题可能是什么原因造成的?我怀疑是某个缓冲区内存不足等等。或者是堆栈溢出。
或者,是否有其他命令行工具可以执行相同的操作?
它是 Debian Lenny 上的 Wget 1.11.4。
马丁
答案1
有可能服务器正在对您的下载模式进行某种分析并压缩您的请求。查看 wget 的一些限制请求速率的选项 - 查看--limit-rate
、--wait
和--random-wait
。
答案2
我发现没有办法让 wget 遍历整个站点而不会过早终止,但我偶然发现了追踪完美地完成了工作。