ES清理索引镜像

Dockerfile

FROM alpine:latest

# 安装curl  
RUN apk add --no-cache curl coreutils

# 将脚本复制到容器中  
COPY delete_indices.sh /delete_indices.sh

# 设置执行权限  
RUN chmod +x /delete_indices.sh

# 设置容器启动时执行的命令  
CMD ["/delete_indices.sh"]

delete_indices.sh

#!/bin/sh  

#环境变量说明
#DAYS:删除天数
#PREFIX:索引前缀 
#SUFFIX:索引后缀  拼接后的索引:logstash-*2024.03.15
#ES_USER:es账号
#ES_PASSWORD:es密码
#ES_HOST:es地址


DAYS_AGO=$(date -d@"$(( `date +%s`-86400*$DAYS))" +"%Y.%m.%d")
INDEX_PATTERN=$PREFIX$DAYS_AGO$SUFFIX
echo $INDEX_PATTERN
# 使用curl列出所有匹配的索引  
INDICES=$(curl -s -k -u "$ES_USER:$ES_PASSWORD" "$ES_HOST/_cat/indices/$INDEX_PATTERN?v" | awk 'NR>1 {print $3}')

# 遍历索引并删除它们  
for INDEX in $INDICES; do
    echo "Deleting index: $INDEX"
    curl -k -XDELETE -u $ES_USER:$ES_PASSWORD $ES_HOST/$INDEX
done

制作镜像

docker build -t es-index-cleaner:latest .

curl命令 -s -k 说明

  1. -s, --silent
    这个选项使 curl 在运行时“沉默”,即不显示进度和错误消息。它通常用于脚本中,因为你不希望 curl 的输出包含任何与请求本身无关的信息。
    例如,当你只想获取 URL 的内容而不显示任何其他信息时,可以使用此选项。

  2. -k, --insecure
    这个选项允许 curl 在进行 HTTPS 请求时忽略 SSL 证书验证。这意味着,即使服务器的 SSL 证书无效、过期或无法验证,curl 也会继续连接并获取内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值