华为云ES导出数据脚本示例

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!bash
 
# 接口用法
# sh export-es-data.sh 索引名称 css密码 cssIP
 
index=$1
password=$2
ip=$3
value=$(curl -XPOST -u admin:$2  -k "https://${ip}:9200/${index}/_doc/_search?scroll=1m" -H 'Content-Type: application/json' -d '
{
    "size": 10000,
    "query": {
        "match_all": {}
    },
    "sort": [
        "_doc"
    ]
}')
 
scroll_id=$(echo $value | awk -F"[,:}]" '{for(i=1;i<=NF;i++){if($i~"_scroll_id"){print $(i+1)} }}' | tr -d '"' | sed -n 1p)
source=$(echo $value | awk -F"[,:}]" '{for(i=1;i<=NF;i++){if($i~"_source"){print $(i+1)} }}' | tr -d '"' | sed -n 1p)
 
 
while [ -n "$source" ]; do
    echo $value >> es_csv_${index}.tsv
    value=$(curl -XPOST -u admin:$2 -k "https://${ip}:9200/_search/scroll" -H 'Content-Type: application/json' -d '{"scroll": "1m","scroll_id": "'${scroll_id}'"}')
    scroll_id=$(echo $value | awk -F"[,:}]" '{for(i=1;i<=NF;i++){if($i~"_scroll_id"){print $(i+1)} }}' | tr -d '"' | sed -n 1p)
    source=$(echo $value | awk -F"[,:}]" '{for(i=1;i<=NF;i++){if($i~"_source"){print $(i+1)} }}' | tr -d '"' | sed -n 1p)
done

  

posted @   bonelee  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2022-08-29 从实际勒索看业内勒索解密的软件 都不是很好用!
2019-08-29 联邦学习的一些使用库
点击右上角即可分享
微信分享提示