用法及返回结果如下:
lvyaozu@lvyaozu-desktop:~/shell$ ./requesturl.sh -n20
http://www.baidu.com
Request url: http://www.baidu.com
Request number: 20
Request Failed: 0
——Average Value——
time_connect: 0.1614
time_total: 0.1693
time_namelookup: 0.0088
————————-
请求参数:
-n 指定发送多少次请求,默认为10
返回结果为 curl -w 选项返回值,以下摘自curl官方文档:
http://curl.haxx.se/docs/manpage.html
time_connect
The time, in seconds, it took from the
start until the TCP connect to the remote host (or proxy) was completed.
time_total
The total time, in seconds, that the full
operation lasted. The time will be displayed with millisecond
resolution.
time_namelookup
The time, in seconds, it took from the
start until the name resolving was completed.
#!/bin/bash
#requesturl.sh
usage="
Usage: $0 [options...] <url>\n
Options:\n
-h This help text\n
-n <num> The numbers to request\n
"
if [ $# -lt 1 ]
then
echo -e $usage
exit 1
fi
num=10
while getopts "n:h" arg
do
case $arg in
n)
num=$OPTARG
if [ $num -lt 1 ]
then
num=1
fi
;;
h)
echo -e $usage
exit 1
;;
?)
echo "Unknow argument"
exit 1
;;
esac
done
url=$(eval echo "\$$#")
if [ "http://" != ${url:0:7} ]
then
echo "The url need to add the http:// prefix"
exit 1
fi
echo "Request url: "$url
echo "Request number: "$num
i=1
while [ $i -le $num ]
do
c=`curl -o /dev/null -s -w \
"http_code:%{http_code} time_namelookup:%{time_namelookup} \
time_connect:%{time_connect} time_total:%{time_total}" $url`
s=$s$c"\n"
i=$[$i+1]
done
#echo -e $s
echo -e $s | \
awk '{OFS="\n"}{if($1) for(i=1;i<=NF;i++)print $i}' | \
awk -F: -v num=$num -v failnum=0 \
'{if($1 != "http_code")result[$1]+=$2;if($1=="http_code" && $2 != 200)failnum++} \
END{print "Request Failed: " failnum "\n------Average Value------"; \
for(i in result) {print i ": " result[i]/num;} \
print "-------------------------"}'
分享到:
相关推荐
首先,我们需要理解shell脚本的基本结构和语法。在shell脚本中,我们通常会定义变量来存储配置信息,如Zookeeper服务器的地址、监控的节点路径、邮件接收者的邮箱地址等。脚本会定期通过`curl`或`wget`命令获取...
Shell脚本是Linux或Unix系统中常用的自动化任务工具,它允许用户通过命令行接口执行一系列操作。 描述中提到这个脚本是从网上找到的,目的是供人学习和参考。这表明这是一个基础的示例,可能包含了一些基本的Shell...
综上所述,这个压缩包提供了使用Shell脚本进行接口测试的基础框架,包括请求发送、响应处理、错误检查和日志记录等关键步骤。对于想要了解或提升接口自动化测试能力的IT从业者来说,这是一个很好的学习资源。
【Linux Shell+Curl网站健康状态检查脚本】是一种利用Shell脚本配合Curl命令来检测网站健康状况的工具。在本场景中,脚本的主要目的是监控中国博客联盟的成员站点,以便及时发现并处理失联的博客站点。下面将详细...
【Shell+Curl网站状态检查脚本】是一种利用Unix/Linux shell脚本语言和cURL命令行工具来批量检查网站状态的方法。此脚本主要用于自动化监测多个网站的可访问性,识别那些返回非200状态码(通常表示请求未成功)的...
11. **脚本化操作**:curl可以配合批处理或shell脚本进行自动化任务,通过编写脚本来执行一系列HTTP请求。 总的来说,curl在Windows环境下提供了一个强大且灵活的工具,用于处理各种网络任务,包括文件的下载、上传...
10. **自动化与脚本**:curl的命令行特性使其非常适合在批处理脚本或自动化测试中使用,可以编写shell脚本来执行一系列网络请求。 11. **多线程下载**:curl的`--parallel`选项允许同时下载多个资源,提高下载速度...
7. **脚本化和批处理**:curl可以与shell脚本结合,实现批量操作,例如,连续请求多个URL或自动化测试。 8. **进度条和速率限制**:curl可以显示下载进度,并通过`--limit-rate`选项限制传输速率,这对于管理网络...
`curl` 可以与 shell 脚本结合,实现自动化任务。例如,定期抓取网页内容,或者向 API 发送请求。同时,`curl` 还支持批处理模式,通过 `-J` 和 `-L` 选项,可以自动处理重定向。 **6. 日志与调试** 在开发或排查...
总结来说,处理Linux shell中`curl`发送POST请求时的JSON格式问题,主要需要注意以下几点: 1. 设置`Content-Type`为`application/json`。 2. JSON字符串内的变量需要用双引号 `"` 包围,而整个字符串需要用单引号 ...
Shell脚本监控网站页面正常打开情况是网络运维中常用的一种自动化监控手段,它能够实时检查网站的状态,并在出现问题时及时发出警报。本篇将详细解释如何使用Shell脚本来实现这个功能。 首先,脚本的核心在于使用`...
1. 脚本化探测:将curl命令整合到shell脚本或自动化工具中,定期检查服务器状态。 2. 结合其他工具:例如,`curl | grep "error"`可以与grep结合,筛选出包含特定关键字的响应。 总结,curl是服务器探测的利器,...
### 监控php-fpm并自动重启服务的Shell脚本详解 #### 背景介绍 在Web开发中,PHP是常用的服务器端脚本语言之一,而`php-fpm`(FastCGI Process Manager)是一种PHP FastCGI的实现,能够提供更好的性能表现和资源...
- 自动化脚本:`curl`常被用在shell脚本中,用于获取API数据或下载文件。 - 网络调试:通过查看`curl`请求和响应,可以诊断网络问题。 - 数据抓取:用于抓取网页内容,如HTML、JSON或XML数据。 综上所述,`curl`...
Shell脚本是Linux/Unix系统中用于自动化任务的强大工具,特别是在服务器管理中,它可以帮助管理员高效地监控系统状态。本文将详细介绍如何使用Shell脚本来监控服务器的在线状态,并在出现问题时通过邮件进行报警。 ...
在“curl协议”部分,详细介绍了curl支持的协议种类。curl能够通过多种协议来传输数据,例如HTTP、HTTPS、FTP等。对于每种协议,文档会提供相关的使用命令和选项,帮助用户有效地通过这些协议传输数据。 关于curl...