婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > shell腳本批量刪除es索引的方法

shell腳本批量刪除es索引的方法

熱門標簽:湖北孝感如何辦理 輝縣市地圖標注 威海電銷外呼系統好用嗎 地圖標注x是啥意思 房產證地圖標注的兩個面積 同花順電話機器人微信 外呼系統的合法性 北京電銷機器人對市場的影響 武漢語音電銷機器人加盟

發現elasticsearch集群的狀態是red,unassign的分片數很多,看了下都是些舊的日期的索引(應該是定時任務刪除失敗導致的)。

curl -XGET ip:port/_cat/shards | grep UNASSIGNED

數量有幾百個,寫個腳本處理下,先恢復成green。red狀態好像會影響索引創建和數據遷移

先把需要刪除的索引導出到文件

curl -XGET ip:port/_cat/shards | grep UNASSIGNED >> needDelIndex.txt

確認下要刪除的索引列表。沒問題就執行下面刪除shell(es的ip和端口需要修改下)

#!/bin/bash
echo "$1"
esUrl=${esip}:${esport}
indexfile=needDelIndex.txt
#cp -f /dev/null ${indexfile}
#curl -XGET ip:port/_cat/shards | grep UNASSIGNED >> needDelIndex.txt
if [ ! -f ./${indexfile} ]; then
  echo $indexfile not exists
  exit 0
fi
logfile=esindex_del.`date +"%m-%d"`.log
cp -f /dev/null ${logfile}
lastIndexName="test"
for item in `cat ${indexfile} | awk '{print $1}'`
do
  if [ "$item" = "error" ]
  then
    continue
  fi
  if [ "$item" != "$lastIndexName" ]
  then
    curl -XDELETE ${esUrl}/${item} >> ${logfile}
    echo ---------${item} `date` >> ${logfile}
    sleep 5
  fi
  lastIndexName=${item}
done

因為我們的索引是按天創建的,索引名前綴是yyyy-MM-dd, 保留一段時間后需要批量刪除。shell的第一個參數為yyyy-MM-dd,將刪除該天及以前的舊索引

#!/bin/bash
esUrl=${esip}:${esport}
echo "$1"
if [ $# -ge 1 ]
then
  deleteDate=$1
else
  echo "please inpust detete esindex's date(yyyy-MM-dd)"
  exit 0
fi
indexfile=esindex.info
cp -f /dev/null ${indexfile}
curl '${esUrl}/_cat/indices' >> ${indexfile}
logfile=esindex_del.`date +"%m-%d"`.out
cp -f /dev/null ${logfile}
for item in `cat ${indexfile} | awk '{print $3}'`
do
  if [ "$item" = "error" ]
  then
    continue
  fi
  parameter=${esUrl}/${item}
  indexdate=${item:0:10}
  if [ "$indexdate" = "$deleteDate" ]
  then
    curl -XDELETE ${parameter} >> ${logfile}
    echo ---------${item} >> ${logfile}
    sleep 5
  elif [[ "$indexdate"  "$deleteDate" ]]
  then
    curl -XDELETE ${parameter} >> ${logfile}
    echo ---------${item} >> ${logfile}
    sleep 5
  fi
done

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • shell中如何批量注釋和取消注釋
  • shell腳本實現統計文件大小、批量創建用戶的示例
  • shell腳本批量復制及執行命令的示例詳解
  • 使用Shell腳本批量啟停Docker服務
  • shell腳本實現ssh-copy-id批量自動發送公鑰到遠程主機
  • shell批量curl接口腳本的簡單實現方法
  • 詳解Shell 命令行批量處理圖片文件名的實例
  • 如何使用shell在多服務器上批量操作

標簽:麗江 紹興 西寧 迪慶 武威 蚌埠 日喀則 安康

巨人網絡通訊聲明:本文標題《shell腳本批量刪除es索引的方法》,本文關鍵詞  shell,腳本,批量,刪除,索引,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《shell腳本批量刪除es索引的方法》相關的同類信息!
  • 本頁收集關于shell腳本批量刪除es索引的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 科技| 太和县| 临朐县| 英山县| 宁安市| 炉霍县| 东丰县| 景谷| 平阳县| 湘乡市| 麻阳| 应用必备| 郸城县| 秦安县| 延吉市| 文安县| 布拖县| 中超| 金山区| 佛山市| 合山市| 秭归县| 扎赉特旗| 桦甸市| 云霄县| 和龙市| 平安县| 濮阳市| 柳河县| 盐津县| 花莲市| 威海市| 永登县| 离岛区| 崇阳县| 慈利县| 开封市| 历史| 琼海市| 陇西县| 吉安市|