测试网站链接是否可用(wget和curl)

一、wget用法案例

系统给的命令参数如下:

通常我们用到的参数很少,如下所示:

--spider                   模拟爬虫的行为去访问网站,但不会下载网页
-q,    --quiet             安静的访问,禁止输出,类似-o /dev/null功能
-o,    --output-file=FILE  记录输出到文件
-T,    --timeout=SECONDS   访问网站的超时时间
-t,    --tries=NUMBER      当网站异常时重试网站的次数

测试命令:

wget --spider -T 5 -q -t 2 www.baidu.com | echo $?
若返回值为0代表正常

二、curl用法案例

系统给的命令参数如下:

跟wget相同,我们平常能用到的参数很少,如下所示:

-I/--head                    显示响应头信息
-m/--max-time <seconds>      访问超时的时间
-o/--output <file>           记录访问信息到文件
-s/--silent                  沉默模式访问,就是不输出信息
-w/--write-out <format>      以固定特殊的格式输出,例如:%{http_code},输出状态码

测试命令:

curl -s -o /dev/null www.baidu.com | echo $?                      若返回值为0,则代表正常
curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null  www.baidu.com   根据返回状态码判断,若为200,则代表正常

三、脚本

复制代码
#!/bin/sh
#测试url是否正常,只能传入一个参数
:<<EOF
$0 这个程式的执行名字
$n 这个程式的第n个参数值,n=1..9
$* 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$*类似,但是可以当作数组用
EOF
usage() {     #提示脚本执行方式
    echo $"usage:$0 url"
    exit 1
}

check_url() {  #检查网址是否可用
    wget --spider -q -o /dev/null --tries=1 -T 5 $1
    if [ $? -eq 0 ]
    then
        echo "$1 is ok."
        exit 0
    else
        echo "$1 is fail."
        exit 1
    fi
}

main() {
     if [ $# -ne 1 ]   #判断参数个数,若不为1提示用户。
     then
         usage
     fi
     check_url $1
}
main $*
复制代码

 

posted @   Buddha-Youth  阅读(10391)  评论(0编辑  收藏  举报
编辑推荐:
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
阅读排行:
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具
点击右上角即可分享
微信分享提示