使用CURL和shell脚本验证mysql数据库中URL的状态

时间:2010-07-10 20:41:38

标签: mysql curl shell http-status-codes

美好的一天,

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

表:LINKS
字段:ID URL STATUS

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

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

谢谢。

2 个答案:

答案 0 :(得分:0)

我宁愿这样做,比如说千元,而是用bash做这个,我会用PHP或Perl(或你选择的任何其他脚本语言,例如Python)来做。

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

答案 1 :(得分: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