#输入:固定格式的用户数据user.sql
#处理:循环读取user.sql中的每行(每行对应一条用户数据),依次调用curl命令将用户插入BearyChat
#输出:执行结果输出到日志文件outlog.txt
#版本:V1.1
num=1
for line in `cat errorData.sql`
do
#截断
IFS=','
arr=($line)
#body参数赋值
domainid=${arr[0]}; domainname=${arr[1]}; username=${arr[2]}; userid=${arr[3]}; teamname=${arr[4]}; teamid=${arr[5]}; region=${arr[6]}
#拼装请求的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}+1
#休眠0.1s
sleep 0.05
done
#输入:import.sh脚本执行后的结果文件outlog.txt
#处理:此shell的作用是从import.sh的结果文件outlog.txt中查找出调用接口报错的和没有返回的用户数据,并把数据整合到errorData.sql文件中,供再次处理!
#输出:正确返回的内容会回显到控制台,执行错误的用户数据会输出到errorData.sql
#版本:V1.0
# ---------------------重要!!!执行此脚本前确保利用手工拷贝的outlog.txt文件,否则某些行会读不出来!!!------------------
# ---------------------重要!!!执行此脚本前确保利用手工拷贝的outlog.txt文件,否则某些行会读不出来!!!------------------
num=1
for line in `cat outlog.txt` #outlog.txt是import.sh执行后的结果文件
do
#如果长度为1,则为空行,需要记录
if [ "${#line}" -eq 1 ] || !( echo $line|grep 'http_code:200' ); then
n=$num"p"
echo $n
sed -n $n user.sql >> errorData.sql
fi
let num=${num}+1
done
exit 0
#查找文件空行
#grep -n "^$" outlog.txt