Shell脚本实现用户数据导入
#输入:固定格式的用户数据user.sql
#处理:循环读取user.sql中的每行(每行对应一条用户数据),依次调用curl命令将用户插入BearyChat
#输出:执行结果输出到日志文件outlog.txt
#版本:V1.
num=
for line in `cat errorData.sql`
do
#截断
IFS=','
arr=($line)
#body参数赋值
domainid=${arr[]}; domainname=${arr[]}; username=${arr[]}; userid=${arr[]}; teamname=${arr[]}; teamid=${arr[]}; region=${arr[]}
#拼装请求的body数据
body_data="[{\"domainid\":\"$domainid\",\"domainname\":\"$domainname\",\"username\":\"$username\",\"userid\":\"$userid\",\"teamname\":\"$teamname\",\"teamid\":\"$teamid\",\"regions\":[\"$region\"]}]"
#调用HTTP接口,限制连接超时时间,限制数据传输超时时间
curl -k -X POST -H 'Content-Type:application/json' -d "$body_data" -o /dev/null -s -w "line_number:$num,http_code:%{http_code},time_connect:%{time_connect},time_starttransfer:%{time_starttransfer},time_total:%{time_total}" https://100.101.31.233/api/devcloud/users | tee -a outlog.txt
echo >> outlog.txt
echo
let num=${num}+
#休眠0.1s
sleep 0.05
done
#输入:import.sh脚本执行后的结果文件outlog.txt
#处理:此shell的作用是从import.sh的结果文件outlog.txt中查找出调用接口报错的和没有返回的用户数据,并把数据整合到errorData.sql文件中,供再次处理!
#输出:正确返回的内容会回显到控制台,执行错误的用户数据会输出到errorData.sql
#版本:V1.
# ---------------------重要!!!执行此脚本前确保利用手工拷贝的outlog.txt文件,否则某些行会读不出来!!!------------------
# ---------------------重要!!!执行此脚本前确保利用手工拷贝的outlog.txt文件,否则某些行会读不出来!!!------------------
num=
for line in `cat outlog.txt` #outlog.txt是import.sh执行后的结果文件
do
#如果长度为1,则为空行,需要记录
if [ "${#line}" -eq ] || !( echo $line|grep 'http_code:200' ); then
n=$num"p"
echo $n
sed -n $n user.sql >> errorData.sql
fi
let num=${num}+
done
exit
#查找文件空行
#grep -n "^$" outlog.txt
Shell脚本实现用户数据导入的更多相关文章
- shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中
shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...
- 案例:通过shell脚本实现mysql数据备份与清理
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行,实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核,不仅如此,Sh ...
- Android随笔之——用shell脚本模拟用户按键、触摸操作
之前写过两篇关于Android中模拟用户操作的博客(其实用一篇是转载的),现在就来讲讲用shell脚本来模拟用户按键操作.本次的目标是用shell脚本打开微信并在其搜索框中搜索相关内容. 本文的模拟功 ...
- 600万用户数据导入MYSQL、MSSQL、Oracle数据库方法【转】
1.导入MySql数据库 参考文献:http://zhuaxia.org/blog/post/145 1.1.LOAD DATA INFILE语法 因为获得的数据库文件是一个文本文件www.csd ...
- oracle 老用户数据导入新建用户
$sqlplus/nolog #使用PLSQL进入oracleSQL>conn/as sysdba #进入sysdba权限CREATE DIRECTORY datadir1 AS ' ...
- Shell脚本处理JSON数据工具jq
shell脚本如何方便地处理JSON格式的数据呢,这里介绍一个工具:jq 使用参数介绍:https://stedolan.github.io/jq/manual/ 官方教程简单翻译如下. 1.获取JS ...
- shell脚本中的数据传递方式
shell中支持的数据传递方式 主要有那么几种: 变量.管道.结果引用.重定向+文件.以及xargs. 变量方式: 1. 定义变量: 变量名=值 2. 使用变量: $变量名 管道方式: 统计当前文件夹 ...
- 在 Symfony Command中自定义脚本把Excel数据导入到数据库中
// 注:只是在此做下记录,有兴趣的可以参考,不做实际教程文档 <?php/** * Created by IntelliJ IDEA. * User: davis * Date: 2019-0 ...
- 使用shell脚本添加用户
该文演示如何使用shell脚本完成添加用户,首先进行一个判断,如果用户存在,提示该用户已经存在,否则进行添加新的用户. 示例代码如下: #!/bin/bash grep_user() { R=`gre ...
随机推荐
- 用聚合数据API(苏州实时公交API)快速写出小程序
利用聚合数据API快速写出小程序,过程简单. 1.申请小程序账号 2.进入开发 3.调用API.比如“苏州实时公交”小程序,选择的是苏州实时公交API. 苏州实时公交API文档:https://www ...
- 来自 119.*.*.*的回复: TTL 传输中过期
来自 119.*.*.*的回复: TTL 传输中过期. 一般这种情况是由于路由表问题造成的. tracert命令跟踪了一下,有如下输出: C:\Users\cba>tracert 119.*.* ...
- ant-design table 分页(tableProps)
1.布局 <Table dataSource={this.state.tableDetailList} scroll={{ y: '200px' }} style={{tableLayout: ...
- php文件加载路径
<?php require('reusable.php'); echo "相对路径加载<br/>"; /* ./ 表示当前文件所在的目录 ../ 表示当前文件所在 ...
- 无线网络RSSI、SSID、BSSID
获取无线网络,及无线网络的参数之前,我们先了解一下RSSI,SSID和BSSID分别是什么,当然你可以去百度或者维基百科查阅,我这里只是简单的说明一下.RSSI就是无线网络的信号强度,这个是和无线AP ...
- Linux下(centos6.8)JDK1.8的安装与配置
今天说下在Linux(centos6.8)系统下的JDK安装与配置. 据我所知的jdk安装方式有三种(rpm.yum方式没用过,暂且不提)今天只说解压安装方式: 一.解压jdk安装包: 附上jdk1. ...
- 论C++STL源代码中关于堆算法的那些事
关于堆,我们肯定熟知的就是它排序的时间复杂度在几个排序算法里面算是比較靠上的O(nlogn)常常会拿来和高速排序和归并排序讨论,并且它还有个长处是它的空间复杂度为O(1), 可是STL中没有给我们提供 ...
- Atitit.wrmi web rmi框架新特性
Atitit.wrmi web rmi框架新特性 1. V1d 新特性1 1.1. 增加了精确参数1 1.2. 增加了req参数,命名参数模式..1 1.3. 增加了globale 传递隐含参数r ...
- Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python
Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python 1. 上传的几点要求2 1.1. 本地预览2 1.2 ...
- iOS 学习笔记三【segmentedControl分段控制器详细使用方法】
在iOS开发过程中,分段控制器的使用频率还是蛮高的,下面是我写的一个简单的demo,大家可以把代码直接复制过去,就可以使用,ios9最新支持. // // ViewController.m // 03 ...