定時刪除10天前的Es索引


說明

主要用在索引名為 xxxx-yyyy.MM.dd 這種,可以自定義修改下邊的腳本

刪除索引shell

創建 delete_es_indices_over_10_day.sh

#!/bin/bash

###################################
#刪除早於十天的ES集群的索引
###################################
function delete_indices() {
    comp_date=`date -d "10 day ago" +"%Y-%m-%d"`
    date1="$1 00:00:00"
    date2="$comp_date 00:00:00"

    t1=`date -d "$date1" +%s` 
    t2=`date -d "$date2" +%s` 

    if [ $t1 -le $t2 ]; then
        echo "$1時間早於$comp_date,進行索引刪除"
        #轉換一下格式,將類似2017-10-01格式轉化為2017.10.01
        format_date=`echo $1| sed 's/-/\./g'`
        curl -XDELETE http://10.2.7.70:9204/*$format_date
    fi
}

curl -XGET http://10.2.7.70:9204/_cat/indices | awk -F" " '{print $3}' | awk -F"-" '{print $NF}' | egrep "[0-9]*\.[0-9]*\.[0-9]*" | sort | uniq  | sed 's/\./-/g' | while read LINE
do
    #調用索引刪除函數
    delete_indices $LINE
done

賦執行權限 sudo chmod +x delete_es_indices_over_10_day.sh

如果換服務器,那么請替換ip:port到自己的es服務器地址

添加定時任務

這里設置每天執行一次

執行crontab -e 修改當前系統的定時任務,下邊是添加這一行,每天晚11:30刪除一次過期10天以上的索引

30 23 * * * sh /home/hellxz/delete_es_indices_over_10_day.sh

引用文章:
定期刪除elasticsearch集群10天以上的索引
linux設置定時任務的方法(自己總結)


免責聲明!

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



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