elasticsearch 資料的備份與恢復

2021-10-10 19:30:53 字數 2201 閱讀 1554

1.備份資料

1.1 建立備份倉庫

1.2 備份指令碼

$ cat /alidata1/admin/scripts/elasticsearch/es_bak_del.sh

#!/bin/bash

## define vars

es_url=""

es_bak_repo="hsbc_backup"

es_user="elastic"

es_pass="123456"

es_bak_date=`date +'%y-%m-%d-%h'`

echo -e "\n **********= $es_bak_date **********=="

## bak

curl -u $:$ -xput "$/_snapshot/$/es_bak_$?wait_for_completion=true"

echo ""

##sleep

sleep 10

##del 最後的60: 定時任務 每4小時備份一次 一天備份6次 資料保留10天

es_del_snapshots=`curl -u $:$ -s -xget "$/_snapshot/$/_all" | python -m json.tool| python -c 'import json; import sys; input = sys.stdin.read(); result = [x["snapshot"] for x in json.loads(input)["snapshots"]]; print("\n".join(result[:-60]));'`

for es_del_snapshot in $; do

echo "**********=$es_del_snapshot del"

curl -u $:$ -s -xdelete "$/_snapshot/$/$"

echo ""

done

1.3 建立定時任務

$ crontab -e

0 */4 * ** /bin/bash /alidata1/admin/scripts/elasticsearch/es_bak_del.sh >> /alidata1/admin/logs/crontab/es_bak/crontab.log 2>&1

2.資料還原

目的:將某乙個備份的檔案還原到192.168.43.104

$ cat es_restore.sh

#!/bin/bash

set -e

## define vars

es_url=""

es_bak_repo="hsbc_backup"

es_restore_snapshots="es_bak_20200811"

es_user="elastic"

es_pass="123456"

##(1)獲取備份檔案中存在的索引

es_get_snapshots_index=`curl -u $:$ -s -xget "$/_snapshot/$/$" | python -m json.tool| python -c 'import json; import sys; input = sys.stdin.read(); result=json.loads(input); indices = result["snapshots"][0]["indices"]; sys.stdout.write(" ".join([i for i in indices]));'`

##(2)將備份檔案中存在的索引刪除 然後恢復

for index in $; do

if [ $ == ".security-6" ]; then # 如果索引為 .security-6 則不能刪除

continue

fi# 判斷索引是否存在

res=`curl -s -u $:$ -xget "$/$"| grep "error" |grep 404|awk ''`

if [ -z $ ] ; then #如果存在則刪除索引

curl -s -u $:$ -xdelete $/$

echo -e "\ndelete index data : $ "

fi#資料恢復

echo -e "data restore : $\n"

done

Elasticsearch 搜尋資料

elasticsearch 修改資料 elasticsearch 搜尋資料 現在我們已經了解了基本知識,讓我們嘗試使用更真實的資料。我們提供了一些虛構的客戶銀行賬戶資訊,格式如下所示 curl localhost 9200 cat indices?v 響應 health status index u...

二 elasticsearch入門(資料)

程式中大多的實體或物件能夠被序列化為包含鍵值對的json物件,鍵 key 是字段 field 或屬性 property 的名字,值 value 可以是字串 數字 波爾型別 另乙個物件 值陣列或者其他特殊型別,比如表示日期的字串或者表示地理位置的物件。accounts 文件元資料 乙個文件不只有資料。...

elasticSearch修改資料

elasticsearch幾乎能實時提供資料操作和搜尋功能。預設情況下,從開始索引 更新 刪除資料到出現搜尋結果的時間可以認為需要一秒的時間。這是與sql等其他平台的重要區別,其中資料在事務完成後可以立即使用。在上節中我們給索引建立了乙個文件,命令為 put customer doc 1 prett...