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



指定删除
删除第12月份的索引
curl -u elastic:Traasd --insecure -XDELETE http://localhost:9200/*201712*
查看日志
journalctl -u elasticsearch
查看存储空间是否释放


删除释放配置结束
本文来自博客园,作者:不懂123,转载请注明原文链接:https://www.cnblogs.com/yxh168/p/19781924
浙公网安备 33010602011771号