美好的一天,
我有一个简单的MySQL数据库,包含1个表和3个字段
表:LINKS
字段:ID
URL
STATUS
该表有大约3百万个链接 我想检查所有URL并在状态字段中发布他们返回的状态,以便我可以在以后删除死链接。
这可能需要一个shell脚本,因为它需要运行很长时间 我认为CURL标题可能是检查状态代码的最佳方法,但我不知道如何把它们放在一起。任何有关上述内容的帮助或建议更好地处理此问题将不胜感激。
谢谢。
答案 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