#!/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
定时删除es索引快速实现
于 2024-08-27 18:37:14 首次发布