Shell腳本實現用戶數據導入


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM