#輸入:固定格式的用戶數據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