删除旧的 Elasticsearch 索引,如果 ELK 使用 curl 安装在 docker 容器中



ELK安装在docker上。由于旧的日志和索引服务器硬盘容量已满,导致ELK容器崩溃。

在安装了 elk 的 docker shell 上运行下面的 shell 脚本

#!/bin/bash

几天前= date --date="200 days ago" +%Y%m%d全线= /usr/bin/curl -s -XGET http://127.0.0.1:9200/_cat/indices?v | egrep logstash

回波回声"这是应该为麋鹿删除的内容:"回波

echo "$ALLLINES" | 同时读取 LINE做 格式化行= echo $LINE | awk '{ print $3 }' | awk -F'-' '{ print $2 }' | sed 's/.//g' 如果 [ "$FORMATEDLINE" -lt "$DAYSAGO" ] 然后 要删除= echo $LINE | awk '{ print $3 }' 呼应"http://127.0.0.1:9200/$TODELETE" fi做

回波echo -n "如果这成立,Y 继续 N 退出 [Y/N]:"读取输入如果 [ "$INPUT" == "Y" ] ||[ "$INPUT" == "y" ] ||[ "$INPUT" == "是" ] ||[ "$INPUT" == "是" ]然后 回声"$ALLLINES" |同时读取行 做 格式化行= echo $LINE | awk '{ print $3 }' | awk -F'-' '{ print $2 }' | sed 's/.//g' 如果 [ "$FORMATEDLINE" -lt "$DAYSAGO" ] 然后 删除= echo $LINE | awk '{ print $3 }' /usr/bin/curl -XDELETE http://127.0.0.1:9200/$TODELETE 睡眠 1 fi 做还 回声脚本被用户关闭,再见... 回波 退出fi