elastic定时清除索引数据

定时删除

ALL_INDICES=$(curl -u elastic:Transfar@2022 --insecure   https://192.168.100.31:9200/_cat/indices?h=index 2>/dev/null | sort)

CUTOFF_DATE=$(date -d "6 months ago" +%Y%m)

for INDEX in $ALL_INDICES; do
    # 1) 包含匹配:索引名中出现6位连续数字即可
    if [[ ! "$INDEX" =~ ([0-9]{6}) ]]; then
        echo "  [跳过] ${INDEX}(不含 yyyymm 日期)"
        continue
    fi

    # 2) 提取日期字段,而非用整个索引名比较
    INDEX_DATE="${BASH_REMATCH[1]}"

    # 3) 用提取出的 yyyymm 与截止线比较(字典序 = 日期序)
    if [[ "$INDEX_DATE" < "$CUTOFF_DATE" ]]; then
        echo "  [删除] ${INDEX}  (日期=${INDEX_DATE})"
        curl -s -XDELETE ${AUTH} "${ES_HOST}/${INDEX}"
    else
        echo "  [保留] ${INDEX}  (日期=${INDEX_DATE})"
    fi
done

  0 8 * * * find /home/admin/mysql_bak/42/soar -mtime +15 -delete 

       image

        image

     image

指定删除

     删除第12月份的索引
     curl -u elastic:Traasd  --insecure -XDELETE http://localhost:9200/*201712*

查看日志

     journalctl -u elasticsearch

 

查看存储空间是否释放

       image

      image

      删除释放配置结束

posted @ 2026-03-27 14:09  不懂123  阅读(27)  评论(0)    收藏  举报