30日前のすべてのインデックスを削除しますelasticsearch

私のインデックスフォーマット

XXX-XXX-XXX-2019年6月27日
XXX-XXXX-2019年6月27日

スクリプトのアイデア:

 日によって分割存在ES、上のすべてのインデックスを取得し、その後、月と比較して、インデックス時間の日前に、日付を削除することは月未満であります

#!/ binに/ bashのの
#は1ヶ月のインデックスを削除するelasticserch 
CMD_ECHO = ' エコー' 
SCRIPT_NAME = ` ベース名 $ 0 ` 
LOG_PRINT = " evalの$ CMD_ECHO \" [$ SCRIPT_NAME] \ "$(日付+ @ "%Y %mの%dの%T " )[INFO]:" 
TIME_AGO = 30 
es_cluster_ip = 127.00.1 
関数delete_index(){ 
   comp_date = ' 日付 -d " $ {TIME_AGO}日前" +" %Y-%M-%D " ` 
   DATE1 = " $ {1} 0時00分00秒" 
   DATE2 = " $ {comp_date} 0時00分00秒" 
   index_date = ' 日付 -d " $ {DATE1} " + %S` 
   limit_date = ' 日付 -d " $ {DATE2} " +%S` 
    
   なら [$ index_date -le $ limit_date]。その後、
        $ LOG_PRINT   " $ 1は以前の$ {} TIME_AGO日前より、削除タスクを実行します" >> tmpです。= ` エコー $ 1 | AWK -F   " - "  ' {$ 1"印刷$ 2 $ 3。 ""。 "} ' ` 
        カール -XDELETEます。http:// $ {es_cluster_ip}:9200 / * $のdel_dateを>> tmp.txt 
   Fiを         

} 

#は、取得日が すべてのインデックス
カール -XGETます。http:// $ {es_cluster_ip}:9200 / _cat /インデックス| awkの-F "" '{$ 3印刷}' | egrepの"。[0-9] * \ [0-9] * \ [0-9] *" | awkの-F " - " '{印刷$ NF}' | awkの-F "" '{印刷$((NF-2)) " - " $((NF-1)) " - " $ NF}'   

| 並べ替え| UNIQ | 読み取りLINEはながら行う
  delete_indexの$ {LINE}が
完了

 

おすすめ

転載: www.cnblogs.com/xmc2017/p/11201186.html