Я пытаюсь создать скрипт, который просматривает все мои индексы из Elasticsearch, затем берет имя индекса, вырезает из него дату и помещает его в файл в каталоге / root. После этого скрипт сравнивает даты из файла с датой старше 60 дней и удаляет старые индексы.
Я могу перетащить даты из имен индексов в файл в каталоге / root, но когда я пытаюсь сравнить его с датой 60 дней назад, она не работает.
#!/bin/bash
#storing all the dates that currently in logstash in a file
show_logs=$(curl 'localhost:9200/_cat/indices?v'| grep filebeat |cut -d"-" -f2 $)
echo result has been stored in a file
# storing the date we want to check aginst in a variable
Date6DaysAgo=$(date +%Y.%m.%d --date='6 day ago' >/root/DateAgo.logstash)
echo date 60 days ago is stored in a file
while read p
do
if [ $(date +%s -r /root/DateAgo.logstash) -ge $(date +%s -r /root/CurrentDates)
echo this date is newer than 6 days ago
fi
done < /root/CurrentDates.logstash
Мой ожидаемый результат заключается в том, что скрипт сможет стирать индексы старше 60 дней (дата отображается в названии файла), но в настоящее время я застрял, потому что по какой-то причине вывод кода показывает, что все файлы в порядке (для тестирования я использовал 6 дней).
Текущий результат:
this date is newer than 6 days ago
this date is newer than 6 days ago
this date is newer than 6 days ago
this date is newer than 6 days ago
this date is newer than 6 days ago
this date is newer than 6 days ago
this date is newer than 6 days ago
this date is newer than 6 days ago