免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6189 | 回复: 13
打印 上一主题 下一主题

[求助]curl判断页面的一个shell脚本问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-08 10:24 |只看该作者 |倒序浏览
求助:我想通过curl来批量判断网站页面是否存在,不知道if语句那里怎么用
举列:
http://www.a.zcom/1.php
http://www.a.zcom/2.php
http://www.a.zcom/3.php
http://www.a.zcom/4.php

目的是把这些连接粘贴到一个记事本里,然后通过shell叫本来判断他们是否存在,并把存在的输出到一个文本里方便作统计

论坛徽章:
0
2 [报告]
发表于 2010-05-08 10:33 |只看该作者
我没用过这个命令,但是Shell的思路应该是这样的
#!/bin/bash
for url in `cat yourfile`
do
     curl "$url" && echo "$url" >> ringth.txt || echo "$url" >> error.txt
done

我没试过,因为我没有环境

论坛徽章:
0
3 [报告]
发表于 2010-05-08 10:34 |只看该作者
curl "$url" 我不知道是否有输出,如果有的话取消

论坛徽章:
0
4 [报告]
发表于 2010-05-08 11:15 |只看该作者
本帖最后由 l_penny 于 2010-05-08 13:41 编辑

#!/bin/bash
for url in `cat yourfile`
do
     curl "$url"
    if [ $? -eq 28 -o $? -eq 7 ];then
     echo "$url is not exist."
    else
     echo "$url is exist."
done

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
5 [报告]
发表于 2010-05-08 13:40 |只看该作者
回复 4# l_penny


请教一下你这样写的原理是什么?我curl了一下google,$?的值是0啊。

论坛徽章:
0
6 [报告]
发表于 2010-05-08 15:06 |只看该作者
继续求助

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
7 [报告]
发表于 2010-05-08 15:12 |只看该作者
回复 6# linuxdiy


2楼的结果如何?

论坛徽章:
0
8 [报告]
发表于 2010-05-08 15:17 |只看该作者
回复 2# iori809

肯定不行。

$?只是执行一条命令的退出结果,即使服务器返回一个403或者404,这也说明命令执行成功了,$?肯定是0。

如果服务器宕机,或者没有HTTP服务,$?不是0。

如果只是想检查页面是否正常。检查curl -I 返回头结果中是否是200即可。

论坛徽章:
0
9 [报告]
发表于 2010-05-08 15:55 |只看该作者
#!/bin/bash
for url in `cat yourfile`
do
    curl -s -m 5 "$url" -o a.txt
    if [ $? -eq 0 ] && [ `grep "Not Found" a.txt` ];then
     echo "$url is not exist."
    elif [ $? -eq 28 -o $? -eq 7 ];then
     echo "$url can't connected."
    else
     echo "$url is exist."
    fi
done


刚才没试,修改了一下,这回应该可以了

论坛徽章:
0
10 [报告]
发表于 2010-05-08 18:44 |只看该作者
回复 9# l_penny


    还是无法准确判断,以上语句不对
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP