返回顶部
首页 > 资讯 > 精选 >shell如何批量curl接口脚本
  • 548
分享到

shell如何批量curl接口脚本

2023-06-09 15:06:08 548人浏览 泡泡鱼
摘要

这篇文章主要介绍了shell如何批量curl接口脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最近,刚接一需求,如下: DBA会将一些服务规则的数据导出,然后一条条手动去

这篇文章主要介绍了shell如何批量curl接口脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

最近,刚接一需求,如下:

DBA会将一些服务规则的数据导出,然后一条条手动去curl某应用接口,从而完成相应的业务要求。

那么问题来了,DBA导出的数据是格式化的,要curl的接口也是格式化的,需要的,只是将相应的数据替换成对应的值即可。注意,不保证所有的命令都能执行成功,有可能需要重新跑接口。

很明显,手动一条条地去写curl命令,然后一条条执行,然后观察结果,做出判断,这对于少数几个数据来说,是可行的。但是假设,数据有几百条、几千条几万条呢,那就不可能人工一条条去搞了吧。因此,shell脚本就该出场了(当然了,有同学说,我用其他语言也可以啊,甚至说我这个功能写到代码里就可以了,然而这些特殊无意义的代码,是不需要长期保留下来的)。

该shell脚本只要做好三件事就行了:

  1. 读取源数据文件的内容,替换接口的数据格式;

  2. 执行命令,完成业务操作;

  3. 记录完整的日志,以便后期排查对比;

需求很简单,不懂语法没关系,查一下嘛。参考代码如下:

#!/bin/bashlog_file='result.log'param_file=$1   # 源数据在命令行中指定log_cmd="tee -a $log_file"i=1for line in `cat $param_file`;do echo "read line" $i ":" $line | tee -a $log_file  let "i=$i+1" OLD_IFS=$IFS;IFS=","; arr=($line)            # 分割数据到数组 IFS=$OLD_IFS; curl_cmd="curl -d 'uId=${arr[0]}&bid=${arr[1]}&bA=${arr[2]}&to=6&bP=30&fddays=5' Http://localhost:8080/mi/api/ss/1.0.1/co/apply" echo `date "+%Y-%m-%d %H:%M:%S"` "start ===>> " $curl_cmd | tee -a $log_file eval "$curl_cmd 2>&1" | tee -a $log_file     # 使用 eval 命令,把错误日志和接口返回结果一并带回,到后续console及日志存储 echo `date "+%Y-%m-%d %H:%M:%S"` "end <<===" $curl_cmd | tee -a $log_filedoneecho `date "+%Y-%m-%d %H:%M:%S"` "over: end of shell" | tee -a $log_file

源数据格式参考如下:

234,201708222394083443,50004211,201782937493274932,300023,201749379583475934,2000

当读取的文件格式为空格分隔的文件时,该读取将发生异常,换成另一种方式读取行:

#!/bin/bashlog_file='result.log'param_file=$1log_cmd="tee -a $log_file"i=1while read line;do echo "read line" $i ":" $line | tee -a $log_file  let "i=$i+1" arr=($line) curl_cmd="curl -d 'uId=${arr[0]}&bid=${arr[1]}&bt=${arr[2]}&toBorrowType=6&borrowPeriod=30&fddays=5' http://localhost/mi/c/1.0.1/c/n" echo `date "+%Y-%m-%d %H:%M:%S"` "start ===>> " $curl_cmd | tee -a $log_file #`$curl_cmd` 2>&1 $log_file | tee -a $log_file eval "$curl_cmd 2>&1" | tee -a $log_file  echo `date "+%Y-%m-%d %H:%M:%S"` "end <<===" $curl_cmd | tee -a $log_filedone < $param_fileecho `date "+%Y-%m-%d %H:%M:%S"` "over: end of shell" | tee -a $log_file

这里有个技巧,即使用tee命令,既在console上显示了访问日志,也往文件里写入了记录。即有人工观察,也有日志存储,以备查看。

如此,便实现了大家都不用手动敲数据,从而在这上面犯错的可能了。 DBA从数据导出格式化数据,shell脚本直接读取格式化数据,保留记录。这才是程序该干的事。

一句话,想办法偷个懒,这是我们该干的事。

但是应该要注意,当一个接口被脚本跑去执行时,你就行考虑并发问题,以服务器的压问题了,也不要太相信代码。做最坏的打算。

感谢你能够认真阅读完这篇文章,希望小编分享的“shell如何批量curl接口脚本”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: shell如何批量curl接口脚本

本文链接: https://lsjlt.com/news/256579.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • shell如何批量curl接口脚本
    这篇文章主要介绍了shell如何批量curl接口脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最近,刚接一需求,如下: DBA会将一些服务规则的数据导出,然后一条条手动去...
    99+
    2023-06-09
  • shell批量curl接口脚本的简单实现方法
    前言 相信大家应该都有所体会,shell脚本可以说作用非常大,在服务器领域,用shell操作事务可比手动点击要方便快捷得多了。虽然只是文字界面,但是其强大的处理功能,会让各种操作超乎想象。而且,也可以将这些...
    99+
    2022-06-04
    批量 脚本 接口
  • shell脚本如何批量创建用户
    小编给大家分享一下shell脚本如何批量创建用户,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!shell脚本批量创建用户基本操作案例:批量创建user01 ~ u...
    99+
    2023-06-29
  • 如何通过shell脚本批量添加用户
    这篇文章主要介绍了如何通过shell脚本批量添加用户,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。for添加指定类型用户以及设置随机密码这里分两种情况,一种是测试for循环批...
    99+
    2023-06-05
  • shell如何结合expect写批量scp脚本工具
    这篇文章给大家分享的是有关shell如何结合expect写批量scp脚本工具的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在部署一个任务时,其中有一项必须的过程就是将一些文件,如安装包发送到大量的服务器上去。虽然...
    99+
    2023-06-09
  • 如何编写Shell脚本批量添加扩展名
    本篇内容介绍了“如何编写Shell脚本批量添加扩展名”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法1:代码如下:for file in&...
    99+
    2023-06-09
  • Shell脚本批量清除Nginx缓存
    前言*随着整个互联网的发展,产生了无数大大小小的网站,随之而来用户对网站UI和速度体验也在日益加强,对企业或者个人来说,赢得用户体验也就意味着赢得先机。 那今天我们在这里针对网站速度这方面来一起交流,提高网...
    99+
    2022-06-04
    缓存 批量 脚本
  • Shell脚本实现批量添加用户
    useradd.sh #!/bin/bash for name in tom joy john mark james do useradd $name echo "redhat" | pa...
    99+
    2022-06-04
    批量 脚本 用户
  • shell脚本批量执行指定路径下sql脚本的实现
    目录1. 场景描述2. 创建sql3. 创建脚本3.1 方式一3.2 方式二1. 场景描述 linux环境下通过shell脚本批量执行指定目录下所有sql语句,用来建表建库,初始化项目sql等。linux shell在线...
    99+
    2023-02-03
    shell批量执行sql脚本 shell批量执行脚本
  • shell结合expect写的批量scp脚本工具
    在部署一个任务时,其中有一项必须的过程就是将一些文件,如安装包发送到大量的服务器上去。虽然已有宇哥的脚本可用:通过paramiko模块提供的ssh和scp功能编写的python脚本。但我到现在还在对pyth...
    99+
    2022-06-04
    批量 脚本 工具
  • Shell脚本实现批量替换文件内容
    今天同事发现内部服务器的硬盘空间不够了,上面有很多备份,我又不能删除,重新找了个320g的硬盘挂载了上,想以后shell脚本下的备份都转移到新硬盘上,给老硬盘腾出空间来,原备份路径是/data/online...
    99+
    2022-06-04
    批量 脚本 文件
  • shell脚本批量删除es索引的方法
    发现elasticsearch集群的状态是red,unassign的分片数很多,看了下都是些旧的日期的索引(应该是定时任务删除失败导致的)。 curl -XGET ip:port/_cat/shards | grep...
    99+
    2022-06-04
    批量删除es索引 shell脚本批量删除es索引的方法
  • Spark-shell批量命令执行脚本的方法
    批量执行spark-shell命令,并指定提交参数 #!/bin/bash source /etc/profile exec $SPARK_HOME/bin/spark-shell --queue tv --na...
    99+
    2022-06-04
    Spark shell 执行脚本
  • hbase-shell批量命令执行脚本的方法
    批量执行hbase shell 命令 #!/bin/bash source /etc/profile exec $HBASE_HOME/bin/hbase shell <<EOF truncate...
    99+
    2022-06-04
    hbase shell 执行脚本
  • 怎么用Shell脚本批量清除Nginx缓存
    这篇文章主要介绍“怎么用Shell脚本批量清除Nginx缓存”,在日常操作中,相信很多人在怎么用Shell脚本批量清除Nginx缓存问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Shell脚本批量清除N...
    99+
    2023-06-09
  • 如何编写Shell脚本批量修改文件后缀名代码
    本篇内容介绍了“如何编写Shell脚本批量修改文件后缀名代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/basho...
    99+
    2023-06-09
  • 如何利用shell脚本批量提交网站404死链给百度
    本篇内容介绍了“如何利用shell脚本批量提交网站404死链给百度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!百度站长平台提供的死链提交工...
    99+
    2023-06-06
  • 如何编写shell脚本实现批量采集爱站关键词库
    这篇文章主要介绍“如何编写shell脚本实现批量采集爱站关键词库”,在日常操作中,相信很多人在如何编写shell脚本实现批量采集爱站关键词库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何编写shell脚本...
    99+
    2023-06-09
  • 如何实现批量转换目录下文件编码的shell脚本
    这篇文章将为大家详细讲解有关如何实现批量转换目录下文件编码的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一例批量转换目录下文件编码的shell脚本代码。需求描述:由于从window转lin...
    99+
    2023-06-09
  • Shell脚本实现批量生成nagios配置文件
    如果管理的站点和服务器较多的情况下,每次修改配置文件都相当痛苦。因而想到了用shell脚本来批量生成配置文件和配置数据。下面这个脚本是为了批量生成nagios监控配置文件的一个shell脚本程序。其原理是事...
    99+
    2022-06-04
    配置文件 批量 脚本
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作