如何获取URL列表的HTTP状态代码的脚本?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

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

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

提问于
用户回答回答于

Curl有一个特定的选项,--write-out对此:

$ curl -o /dev/null --silent --head --write-out '%{http_code}\n' <url>
200
  • -o /dev/null 抛弃平常的输出
  • --silent 扔掉进度表
  • --head 发出HEAD HTTP请求,而不是GET
  • --write-out '%{http_code}\n' 输出所需的状态码

把它包装在一个完整的脚本中:

#!/bin/bash
while read LINE; do
  curl -o /dev/null --silent --head --write-out '%{http_code}' "$LINE"
  echo " $LINE"
done < url-list.txt

用户回答回答于
wget --spider -S "http://url/to/be/checked" 2>&1 | grep "HTTP/" | awk '{print $2}'

只输出你的状态代码。

扫码关注云+社区