#输入:固定格式的用户数据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