【问题标题】:Curl Command to Repeat URL Request用于重复 URL 请求的 Curl 命令
【发布时间】:2012-09-06 17:35:55
【问题描述】:

一个重复点击一个 URL 的 linux 命令的语法是什么,x 次。我不需要对数据做任何事情,我只需要在浏览器中重复点击刷新 20 次。

【问题讨论】:

    标签: linux url curl


    【解决方案1】:
    for i in `seq 1 20`; do curl http://url; done
    

    或者如果您想获取时间信息,请使用ab

    ab -n 20 http://url/
    

    【讨论】:

    • 好吧,我知道这么多.. 原来我缺少的是 '' 围绕 url,因为我的 url 有参数,而 '&' 搞砸了命令
    • 对 URL 使用“引号”。类似于:for i in $(seq 1 20); do curl "http://url"; done
    • 太棒了。我的两分钱。可以使用n=20;for i in `seq 1 $n`;do (echo;echo Execution start $i;curl curl http://url; echo ;echo Execution End $i;); done</code> 参数化/添加到脚本并添加页眉和页脚。
    【解决方案2】:

    您可能对Apache Bench 工具感兴趣,该工具主要用于进行简单的负载测试。

    示例:

    ab -n 500 -c 20 http://www.example.com/
    

    n = 请求总数,c = 并发请求数

    【讨论】:

      【解决方案3】:

      您可以使用带有虚拟查询字符串的 URL 序列替换(如果您想使用 CURL 并节省一些击键):

      curl http://www.myurl.com/?[1-20]
      

      如果您的 URL 中有其他查询字符串,请将序列分配给一次性变量:

      curl http://www.myurl.com/?myVar=111&fakeVar=[1-20]
      

      查看手册页上的 URL 部分:https://curl.haxx.se/docs/manpage.html

      【讨论】:

      • 也适用于 -X POST
      • 还添加了--parallel 和--parallel-max 用于简单的并发调用
      【解决方案4】:

      如果你想在下次执行cron之前加一个间隔可以加一个sleep

      对于我在{1..100};做 echo $i && curl "http://URL" >> /tmp/output.log && sleep 120;完成

      【讨论】:

        【解决方案5】:

        您可以使用任何 bash 循环结构,例如 FOR,与 Linux 和 Mac 兼容。

        https://tiswww.case.edu/php/chet/bash/bashref.html#Looping-Constructs

        在您的具体情况下,您可以定义 N 迭代,N 是一个数字,用于定义您想要执行多少 curl

        for n in {1..N}; do curl <arguments>; done
        

        例如:

        for n in {1..20}; do curl -d @notification.json -H 'Content-Type: application/json' localhost:3000/dispatcher/notify; done
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-12-14
          • 2016-09-24
          • 1970-01-01
          • 2019-07-07
          • 1970-01-01
          • 1970-01-01
          • 2018-12-15
          • 2017-05-25
          相关资源
          最近更新 更多