定时删除es索引快速实现

#!/bin/bash
apt-get update
apt-get install curl jq
ELASTIC_USERNAME="elastic"
ELASTIC_PASSWORD="xxxxxx"
ELASTIC_URL="https://elasticsearch-master:9200"

#天数
DAYS_THRESHOLD=60
#索引
Index=xxxx
curl -u $ELASTIC_USERNAME:$ELASTIC_PASSWORD -k -s $ELASTIC_URL/_cat/indices?h=index | awk '{print $1}' | grep "$Index" >/tmp/list_$Index.txt

while read file_name; do

    # 使用正则表达式匹配日期部分
    if [[ $file_name =~ (20[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]) ]]; then

        date_part=${BASH_REMATCH[1]}

        start_date=$(echo $date_part | sed 's/\./-/g')
        end_date=$(date +"%Y-%m-%d")

        _start_date=$(date -d "$start_date" +%s)
        _end_date=$(date -d "2024-08-24" +%s)

        age_in_days=$((($_end_date - $_start_date) / 86400))

        if [ $age_in_days -ge $DAYS_THRESHOLD ]; then
            echo "文件日期和时间是:$start_date"
            echo "当前日期和时间是:$end_date"
            echo "索引 :$age_in_days 天的差异。"
            echo "删除索引:$date_part"
            echo -e "\n\n\n"

            curl -u $ELASTIC_USERNAME:$ELASTIC_PASSWORD -k -X DELETE "$ELASTIC_URL/$file_name"
        else
            echo "文件日期和时间是:$start_date"
            echo "当前日期和时间是:$end_date"
            echo "索引 :$age_in_days 天的差异。"
            echo "不删除索引:$date_part"
            echo -e "\n\n\n"

        fi
    fi

done </tmp/list_$Index.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值