检查 URL 是否转到包含文本“404”的页面

2023-12-02

我有一个 bash 脚本来检查 URL 列表的 HTTP 状态代码,但我意识到有些虽然看起来是“200”,但实际上显示包含“错误 404”的页面。我该如何检查呢?

这是我当前的脚本:

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

(我从之前的问题中得到了它:获取 url 列表的 HTTP 状态代码的脚本?)

EDIT脚本中似乎有一个错误:它返回“200”,但如果我wget -o log同一个地址,我得到“404 未找到”


为了好玩 - 这是一个 BASH 解决方案:

dosomething() {
        code="$1"; url="$2"
        case "$code" in
                200) echo "OK for $url";;
                302) echo "redir for $url";;
                404) echo "notfound for $url";;
                *) echo "other $code for $url";;
        esac
}

#MAIN program
while read url
do
        uri=($(echo "$url" | sed 's~http://\([^/][^/]*\)\(.*\)~\1 \2~'))
        HOST=${uri[0]:=localhost}
        FILE=${uri[1]:=/}
        exec {SOCKET}<>/dev/tcp/$HOST/80
        echo -ne "GET $FILE HTTP/1.1\nHost: $HOST\n\n" >&${SOCKET}
        res=($(<&${SOCKET} sed '/^.$/,$d' | grep '^HTTP'))
        dosomething ${res[1]} "$url"
done << EOF
http://stackoverflow.com
http://stackoverflow.com/some/bad/url
EOF
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 URL 是否转到包含文本“404”的页面 的相关文章

  • 如何使用 mediawiki 的 api、curl 和 bash 登录?

    我对流程的理解 来自 mediawikis 登录手册https www mediawiki org wiki API 登录 https www mediawiki org wiki API Login 使用 MediaWiki 的 Web
  • 为什么 Git Bash 无法运行我的可执行文件?

    I am on git for windows https github com git for windows 吉特 巴什 我无法在命令行上运行可执行文件 Pedr Abc 07 MINGW64 c dev ls sqlite3 exe
  • 测试 bash shell 脚本[重复]

    这个问题在这里已经有答案了 有人可以解释一下如何测试 bash shell 脚本吗 例如 我有一个 sh 文件 其中包含此代码 bin sh for file in txt do mv file basename file txt doc
  • 使用.sh脚本设置环境变量

    如何编写 sh 脚本以在 Ubuntu 14 上全局设置环境变量 i e bin sh sets this in to master etc environment export DB HOST 123 我知道我可以运行这个脚本 它只会将其
  • 启动 OSX 时未使用 teamcity 代理运行 bash

    我有一个 shell 脚本startup sh执行以下操作 创建 RAM 磁盘并启动 teamcity 代理 bin bash DISK usr bin hdiutil attach nobrowse nomount ram 1677721
  • bash:使用 scp 检查远程文件是否存在

    我正在编写一个 bash 脚本来将文件从远程服务器复制到本地计算机 我需要检查该文件是否可用 以便在该文件不存在时可以采取替代操作 我知道如何测试本地文件是否存在 但是 使用 scp 会使事情变得有点复杂 常识告诉我 一种方法是无论如何尝试
  • 有没有办法在 MacOSX 上使用 Xcode 将 bash shell 脚本与 AppleScriptObjC 应用程序一起打包?

    我正在尝试使用 AppleScriptObjC 作为包装器来自动化三个或四个 bash shell 脚本 这将为我提供一个友好的 GUI 前端来选择数据文件等 以及方便的文本文件操作和多个 bash 脚本的处理 一切正常 我可以按下按钮并运
  • 有没有办法强制apache返回404而不是403?

    有没有办法将 Apache Web 服务器配置为返回 404 未找到 错误代码 而不是对于我想要禁止访问的某些特定目录返回 403 禁止 我发现一些建议使用 mod rewrite 的解决方案 例如 RewriteEngine On Rew
  • 通过多个换行符分割文件

    假设您有以下输入文件 Some text It may contain line breaks Some other part of the text Yet an other part of the text 并且您想要迭代每个文本部分
  • 如何让 Rscript 在非交互式 bash 模式下返回状态代码

    我正在尝试以 bash 脚本的形式从以非交互方式运行的 Rscript 中获取状态代码 此步骤是较大数据处理周期的一部分 其中涉及 db2 脚本等 所以我在脚本sample sh中有以下内容 Rscript verbose no resto
  • 如何在 Linux Bash 中通过 SFTP 将数据传输到远程文件而不将数据存储在本地文件中?

    我需要能够通过 SFTP 将数据从内存传输到远程文件 我最初是通过 SSH 进行此操作的 在工作时发现我没有对远程位置的 SSH 访问权限 只有 SFTP 访问权限 下面是我的原始 SSH 代码的示例 echo secret data ss
  • .htaccess 不重定向到 404.php 而是显示页面名称

    我正在尝试为我的网站制作自定义 404 页面 并且正在尝试 htaccess使用此规则的根目录中的文件 ErrorDocument 404 404 php I want to redirect to 404 所以当我更改有效的文件名时 例如
  • $@ 中 args 的 bash 参数大小写

    我有一个带有一长串可选参数的脚本 有些具有相关的值 Such as script first 2012 12 25 last 2012 12 26 copy remove script first 2012 12 25 因此有以下案例陈述
  • SQLPlus 中的运行循环

    我制作了一个 bash 脚本 它通过 SQLPlus 连接到数据库并运行一个包含 For 循环的 SQL 脚本 如下所示 但是一旦运行它 它就会卡在循环的 BEGIN 中 如下所示 我尝试直接通过SQLPlus运行 结果是一样的 那么任何人
  • 移动除一个文件之外的所有文件

    如何移动除一个文件之外的所有文件 我正在寻找类似的东西 mv Linux Old Tux png Linux New 我将旧的东西移动到新的东西文件夹中 除了Tux png 符号代表否定 有一些工具可以完成这项工作吗 如果您使用 bash
  • 在詹金斯管道作业中将变量传递给bash脚本

    我有一个 Jenkins 管道作业 其中我使用名为 setup sh 的 bash 脚本配置我的环境 如下所示 bin bash export ARCH 1 echo architecture ARCH 在 Jenkins 管道脚本中 我使
  • shell脚本响应按键

    我有一个 shell 脚本 本质上是这样的 while true do read r input if input a then echo hello world fi done 这一切都很好 但我刚刚意识到在这种情况下必须按 ENTER
  • 检测目录中是否有某些内容被修改,如果是,则备份 - 否则不执行任何操作

    我有一个 数据 目录 我通过 shell 脚本定期同步到远程 NAS 但是 我想让这变得更有效率 我想在运行 rsync 之前检测 数据 中是否发生了变化 这样我就不会不必要地唤醒 NAS 上的驱动器 我正在考虑修改 shell 脚本以获取
  • Bash IF:多个条件

    我已经尝试让这件事工作几个小时 但我无法让它工作 if P SFTP a PORT 22 P FTPS PORT 990 a PORT 21 then 有人能帮我吗 我知道多个条件可以这样写 if P SFTP PORT 22 then 但
  • 从外部 bash 设置环境变量

    我试图使用 PHP 从命令行 设置 bash 环境变量 但没有成功 buff array buff VARTESTKEY VARTESTVALUE buff export VARTESTKEY file put contents scrip

随机推荐

  • 如何在div中将元素彼此相邻放置?

    我正在尝试将元素彼此相邻放置 但第三个字段始终出现在单独的行中 div class row div
  • mysql查询中的if elseif条件

    由于缺乏托管的 SUPER 权限 我需要将一些存储过程转换为 SQL 查询 我试过 SET condition 0 IF condition 0 THEN SELECT IF result AS res ELSEIF condition 1
  • Windows 增强的安全性能否破坏 jQueryUI 的日期选择器?

    我在尝试调试由几个月前离开公司的人开发的 ASP NET jQuery jQueryUI Web 应用程序时遇到了一个奇怪的问题 问题 为了进行开发 我们使用 Windows Server 2008 R2 虚拟机或 Windows Serv
  • 添加自定义声明在 ASP.NET Core Identity 中不起作用

    我创造了CustomClaimType储藏user id public static class CustomClaimTypes public const string UserId UserId 当用户登录时 我设置它 var clai
  • 切入点表达式“abc(inString)”包含不受支持的切入点原语“call”

    我对 spring aop 概念很陌生 我在编译过程中收到此错误 org aspectj weaver tools UnsupportedPointcutPrimitiveException 切入点表达式 abc inString 包含不受
  • Prolog - 复制一段列表

    我需要在序言中复制列表 我有清单 L a string1 value1 a string2 value2 a string3 value3 a string4 value4 输出将是 L string1 string2 string3 st
  • 同时在两个 PHP 脚本中使用相同的会话 ID

    我偶尔会发现 PHP 会话存在一个奇怪的问题 当我使用相同的会话 ID 运行两个 PHP 脚本时 第二个脚本会卡住 直到第一个脚本完成 我猜这是因为尝试打开同一会话存储文件两次 但可能我不对 在正常的网站工作中您永远不会发现这种效果 因为用
  • Asp.NET targetFramework 版本和 IIS 应用程序池版本不匹配

    最近我一直在 IIS 中为 Asp Net 网站创建应用程序池 让我感到惊讶的是 这些应用程序池具有 v4 0 而网站则针对 Net Framework v4 5 v4 5 1 各个网站的 Web config 中的条目 这就是应用程序池设
  • 如何将 OpenCV 集成到 Qt Creator Android 项目中

    我使用 Qt Creator 编译 Android 应用程序 我需要将 OpenCV 集成到其中 我花了半天时间才正确配置它 所以我想记录一下我在这里采取的步骤 以防其他人必须这样做 Edit 对于 OpenCV 4 x 请参阅下面的答案
  • 如何在 Nginx 代理服务器中启用 CORS?

    正如我的标题 这是位于conf d api server conf 中的配置文件 server listen 80 server name api localhost location add header Access Control A
  • TextArea MaxLength - 支持还是不支持?

    我正准备添加一个 jQuery 插件来支持文本区域的 maxlength 并注意到 MaxLength 属性在 Safari Chrome 和 Firefox 上本机工作 这到底是HTML5的功劳还是 这是否意味着文本区域的 maxleng
  • 具有多索引的 Pandas 数据透视表小计

    我正在尝试创建一个带有小计 Excel 风格的简单数据透视表 但是我找不到使用 Pandas 的方法 我已经尝试了韦斯在另一个与小计相关的问题中建议的解决方案 但这并没有给出预期的结果 下面是重现它的步骤 创建样本数据 sample dat
  • pdf 小丑 - 不突出显示特定搜索关键字

    我正在使用 pdf clown 和 pdfclown 0 2 0 HEAD jar 我编写了下面的代码来突出显示中文 pdf 文件中的关键字搜索 相同的代码在英文 pdf 文件中工作正常 import java awt Color impo
  • 使用 jQuery 的轮播

    我知道那里有可用的插件 但我正在尝试制作一个自己的插件 但在此之前我试图理解将其制作为无限 圆形轮播的概念 这是我的到目前为止 http jsfiddle net hbk35 KPKyz 3 HTML div ul li div 0 div
  • Div "contenteditable" :获取和删除插入符号之前的单词

    谢谢这个问题和 Tim Down 发布的答案 我做了一个函数来获取 contenteditable div 中插入符号之前的单词 这是一个fiddle 这是函数 function getWordPrecedingCaret containe
  • 从 powershell 为 azure 函数创建函数键

    是否有可能为刚刚从 powershell 脚本创建的 azure 函数创建一个函数键 我有一个发布管道来为 azure 函数创建整个环境 它工作正常 但我缺少的一部分是该函数的自定义函数键 我不想使用默认密钥 我可以在门户中创建新密钥 但我
  • 使用 lambda 函数对 filter() 进行复杂性分析

    给定两个列表 list1 and list2 list3 filter lambda x x in list1 list2 这将返回两个列表的交集 我怎样才能找到这个算法的复杂度 我发现时间复杂度x in list1 is O n 其中 n
  • 理解/mySQL 又名欺骗 Django 中的外键关系

    所以我继承了一些django mySQL 表非常简单 其中父级不是 FK 关系 只是 父级 id CREATE TABLE Child id int 10 unsigned NOT NULL AUTO INCREMENT parent in
  • ASP.NET 中带有和不带有委托的事件

    在一些 ASP NET 示例中 我看到事件与委托一起使用像这样有时没有他们像这样 请解释 所有事件都是委托类型 它们都继承自EventHandler继承自MulticastDelegate其间断自Delegate 有时 或者我宁愿说大多数时
  • 检查 URL 是否转到包含文本“404”的页面

    我有一个 bash 脚本来检查 URL 列表的 HTTP 状态代码 但我意识到有些虽然看起来是 200 但实际上显示包含 错误 404 的页面 我该如何检查呢 这是我当前的脚本 bin bash while read LINE do cur