使用 Linux Shell 脚本不断访问某个链接,看其是否稳定

最近 Ricky 这边有一个需求,开发说某个接口(暂且认为该接口是:http://test.com/webservice )不是很稳定,所以打算写一个 Linux Shell 脚本来测试其稳定性。该脚本会连续不断地访问接口 1 万次(也可访问一次后间隔多少秒再接着访问)。服务器上运行的操作系统为:CentOS Linux 。

部署:

1、编写脚本,在命令行界面输入:

[root@host ~]# vi /root/url_test.sh

键入小写字母 i ,进入编辑模式,将以下脚本复制粘贴进去(请根据实际需要进行相应地修改):

#!/bin/bash

for i in {1..10000}; do 

        code=`curl -I -m 10 -o /dev/null -s -w %{http_code} http://test.com/webservice`
        echo $code >> url_test.log
        #sleep 59

done

按一次 ESC 键退出编辑模式,然后键入 “ :wq ” 保存并退出。

这里解释说明一下使用到的 curl 命令:

curl -I -m 10 -o /dev/null -s -w %{http_code} http://test.com/webservice
  • -I :只显示请求头信息;
  • -m 10 :设置最大传输时间,单位是秒;
  • -o /dev/null :屏蔽原有输出信息;
  • -s :silent 模式,不输出任何东西;
  • -w %{http_code} :控制额外输出。

2、为上述脚本赋予可执行权限,并执行该脚本即可:

[root@host ~]# chmod +x /root/url_test.sh
[root@host ~]# sh /root/url_test.sh

3、如果您需要实现这个功能:不是连续不断地访问,而是两次访问之间需要间隔一定的时间,那么请取消掉这一行注释:

#sleep 59

其中 59 为秒,即睡眠 59 秒钟后再接着执行。

分析:

日志文件的内容具体如下所示:

[root@host ~]# cat /root/url_test.log
200
200
200
000
000
200
200
200
200
200
[root@host ~]#

通过使用下列命令来统计我们可以看到,当前一共检测了 10 次,其中网页状态码返回 200 的次数有 8 次:

[root@host ~]# cat /root/url_test.log | wc -l
10
[root@host ~]# cat /root/url_test.log | grep -c 200
8
[root@host ~]#

初步判断还有两次应该是访问超时了。

打赏作者
这里是 “ CCIE 工程师社区 ” 官方的捐款通道,您是否可以考虑请我们喝杯咖啡呢?

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

Was this article helpful?

Related Articles

Leave A Comment?

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据