我们正在测试我们的服务器。
我是 Shell 脚本的初学者。
我需要一个 bash shell 脚本来读取包含 URL 的文本文件,查询服务器的每个 URL 并检查应用程序服务器是否返回200 OK
或302 Redirect
响应。
您能给我提供一些教程或链接来做到这一点吗?
答案1
for name in `cat textfile`; do curl -s -o /dev/null --write-out %{http_code} $name 2>&1 ; echo -e "\n"; done
说明:
for url in `cat textfile`
使用命令输出文本文件中的所有条目cat
,并通过变量提供当前指针url
。
curl -s -o /dev/null --write-out %{http_code} $url 2>&1
调用 cURL 并使用 抑制任何进度状态-s
,使用 开关将任何其他输出写入/dev/null
(这是一个黑洞,您可以将任何东西扔进去)-o
,然后使用--write out %{http_code}
为您提供您执行的每个链接的返回代码,使用 放下当前链接$url
,并使用 将 STDERR 重定向到 STDOUT 2>&1
(以防您确实收到任何错误)。然后...
; echo -e "\n"
无论最后一条语句(整个 cURL 块)是否失败,都在新行上回显。
`; done
完成循环。
但这可能不是你想要的,因为它仅有的打印出返回代码。
答案2
使用wget
命令使用 --spider 选项。然而,这可能会导致 HEAD 请求而不是 GET,根据网站配置,这可能会导致不正确的结果。另一种方法是使用卷曲。