es按时间删除索引

#!/bin/bash
source /etc/profile
#定义删除30天以前的函数
delete_indices(){
    check_day=`date -d '-3 days' '+%F'`
    index_day=$1
    #将日期转换为时间戳
    check_day_timestamp=`date -d "$check_day" +%s`
    index_day_timestamp=`date -d "$index_day" +%s`
    #当索引的时间戳值小于当前日期30天前的时间戳时,删除此索引
    if [ ${index_day_timestamp} -lt ${check_day_timestamp} ];then
        #转换日期格式
        format_date=`echo $1 | sed 's/-/\./g'`
        curl  -s  -XDELETE http://192.168.100.210:31200/*$format_date
    fi
}

curl -s -XGET http://192.168.100.210:31200/_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

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code