#!/bin/bash
days_to_keep=14
all_indices=`curl 'localhost:9200/_cat/indices?v' 2>/dev/null|awk '{print $3}'|grep logstash`
# Prepare list for removal
if [ "$all_indices" = "" ]; then
 exit 1;
fi
indicies_to_delete="$all_indices"
for day in `seq 0 $days_to_keep`; do
 index_to_keep="logstash-`date +%Y.%m.%d -d \"-$day days\"`"
 to_delete=`echo "$indicies_to_delete"| grep -v "$index_to_keep"`
 indicies_to_delete="$to_delete"
done
# Execute removal
if [ "$indicies_to_delete" != "" ]; then
 for index in $indicies_to_delete; do
   echo Removing $index
   curl -XDELETE "localhost:9200/$index"
   echo
 done
else
 echo "Nothing to remove"
fi
  • No labels