日安,
我有一个简单的MySQL数据库,其中有1个表和3个字段
表:LINKS
字段:ID URL STATUS
这个表有大约300万个链接。
我想检查所有的URL,并在状态字段中发布它们的返回状态,以便我可以在以后删除死链接。
这可能需要一个shell脚本,因为它需要运行很长时间。
我认为CURL头文件可能提供了检查状态码的最好方法,但我不知道如何将这一切放在一起。对上述问题的任何帮助或对更好地处理此问题的建议都将不胜感激。
谢谢。
发布于 2010-07-11 05:06:14
比方说,我宁愿成批地做这件事,而不是在bash中做,我会用PHP或Perl (或您选择的任何其他脚本语言,例如Python)来做这件事。
PHP有fopen,它可以做CURL的工作,所以你不必为每个链接检查产生一个单独的syscall。MySQL连接在PHP和Perl中几乎都是原生的。
发布于 2014-02-27 01:06:14
下面的脚本可以帮助你获取状态,还没有用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
donehttps://stackoverflow.com/questions/3220771
复制相似问题