【问题标题】:Validate status of URLs in a mysql Database using CURL and shell script使用 CURL 和 shell 脚本验证 mysql 数据库中 URL 的状态
【发布时间】:2010-07-10 20:41:38
【问题描述】:

早安,

我有一个简单的 MySQL 数据库,有 1 个表和 3 个字段

表:LINKS
字段:IDURLSTATUS

该表有大约 300 万个链接。
我想检查所有 URL 并将它们返回的状态发布在状态字段中,以便我以后可以删除死链接。

这可能需要一个 shell 脚本,因为它需要运行很长时间。
我认为 CURL 标头可能提供检查状态代码的最佳方法,但我不知道如何将它们放在一起。任何有关上述内容的帮助或有关处理此问题的更好方法的建议将不胜感激。

谢谢。

【问题讨论】:

  • 在状态上您是在寻找确切的代码,还是只是 404?

标签: mysql curl shell http-status-codes


【解决方案1】:

我宁愿以千为单位分批执行此操作,而不是在 bash 中执行此操作,我会在 PHP 或 Perl(或您选择的任何其他脚本语言,例如 Python)中执行此操作。

PHP 有 fopen 可以完成 CURL 的工作,因此您不必为每个链接检查生成单独的系统调用。 MySQL 连接性在 PHP 和 Perl 中几乎都是原生的。

【讨论】:

  • 感谢您的建议,我会尝试自己解决这个问题,但如果您有任何代码,或者可以快速编写它,将不胜感激。谢谢
【解决方案2】:

以下脚本可以帮助您获取状态,所以没有这样做过 sql:

for URL in //get urls from mysql
do
        STATUS=$(curl -s -o  /dev/null -w '%{http_code}' $URL)
        //set status value in "status" in mysql


done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多