1

再会,

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

表: LINKS
字段:ID URL STATUS

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

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

谢谢你。

4

2 回答 2

0

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

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

于 2010-07-10T21:06:14.313 回答
0

以下脚本可以帮助您获取状态,还没有用这个做 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
于 2014-02-26T17:06:14.227 回答