wget --spider:如何判断损坏的链接来自何处

wget --spider:如何判断损坏的链接来自何处

有时我会使用 wget 的内置蜘蛛模式来快速检查本地站点是否有损坏的链接,以方便使用。今天早上,我将注意力转向了我们刚刚进行重大更改的生产站点,它出现了 3 个损坏的链接,但似乎无法判断它们在哪里! (它只说明了他们链接到的内容,并且没有直接的方法将其单独关联回页面。)

我当前使用的选项是wget -r -nv --spider http://www.domain.com/ -o /path/to/log.txt.有谁知道我忽略的一个选项,一种读取输出的方法,或者甚至是这个命令的简单替代品,它也能让我知道链接出现在哪个文件中(最好是行#)?

答案1

您应该能够结合 wget 运行来查看 Web 服务器日志。404在日志文件中查找并提取该referrer字段。这将告诉您包含损坏链接的页面。

然后只需检查该页面是否有违规链接即可。

答案2

一个好方法(不涉及网络服务器日志)是使用 flag--debug和 grep^Referer:

在命令行上:

wget -r -nv --spider http://www.domain.com/ 2>&1 | egrep -A 1 '(^---response end---$|^--[0-9]{4}-[0-9]{2}-[0-9]{2}|^[0-9]{4}-[0-9]{2}-[0-9]{2} ERROR|^Referer:|^Remote file does not)'

您可以在日志上执行类似的 grep 操作。警告:某些 wget 编译时不支持--debug

相关内容