首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取urls列表的HTTP状态代码的脚本?

获取urls列表的HTTP状态代码的脚本?
EN

Stack Overflow用户
提问于 2011-05-26 16:58:37
回答 7查看 146.1K关注 0票数 93

我有一个需要检查的URLS列表,看看它们是否仍然有效。我想写一个bash脚本来帮我做到这一点。

我只需要返回的HTTP状态码,即200、404、500等等。没别的了。

编辑请注意,如果页面显示"404未找到“,但返回200 OK消息,则会出现问题。这是一个配置错误的web服务器,但您可能必须考虑这种情况。

有关这方面的更多信息,请参阅Check if a URL goes to a page containing the text "404"

EN

回答 7

Stack Overflow用户

发布于 2012-02-25 18:40:37

代码语言:javascript
复制
wget --spider -S "http://url/to/be/checked" 2>&1 | grep "HTTP/" | awk '{print $2}'

仅为您打印状态代码

票数 40
EN

Stack Overflow用户

发布于 2014-03-13 21:20:22

扩展了Phil已经提供的答案。如果您使用xargs进行调用,那么在bash中添加并行性是不需要动脑筋的。

代码如下:

代码语言:javascript
复制
xargs -n1 -P 10 curl -o /dev/null --silent --head --write-out '%{url_effective}: %{http_code}\n' < url.lst

-n1:只使用一个值(来自列表)作为curl调用的参数

-P10:随时保持10个curl进程活动(即10个并行连接)

查看curl手册中的write_out参数,了解可以使用它提取的更多数据(时间等)。

如果它对某人有帮助,这是我目前使用的呼叫:

代码语言:javascript
复制
xargs -n1 -P 10 curl -o /dev/null --silent --head --write-out '%{url_effective};%{http_code};%{time_total};%{time_namelookup};%{time_connect};%{size_download};%{speed_download}\n' < url.lst | tee results.csv

它只是将一堆数据输出到csv文件中,该文件可以导入到任何办公工具中。

票数 33
EN

Stack Overflow用户

发布于 2011-05-26 17:25:08

使用curl只获取HTTP-header (而不是整个文件)并解析它:

代码语言:javascript
复制
$ curl -I  --stderr /dev/null http://www.google.co.uk/index.html | head -1 | cut -d' ' -f2
200
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6136022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档