定时删除ElasticSearch索引日志文件

shell 同时被 3 个专栏收录
1 篇文章 0 订阅
1 篇文章 0 订阅
1 篇文章 0 订阅

文件格式:es-index-2021-04-09
需求:定时删除30天以上的索引文件

#!/bin/bash
######################################################
# $Name:        clean_es_index.sh
# $Version:     v1.0
# $Function:    clean amazon es log index
# $Author:      brealeyxx
# $Create Date: 2021-04-09
# $Description: shell
######################################################
#脚本的日志文件路径
CLEAN_LOG="/var/log/clean_es_index.log"
#索引前缀
INDEX_PRFIX="es-index-"
#elasticsearch 的主机ip及端口
SERVER_PORT="http://127.0.0.1:9200"
#取出已有的索引信息
INDEXS=$(curl -s "${SERVER_PORT}/_cat/indices?v" |grep "${INDEX_PRFIX}"|awk '{print $3}')
#awk '{print $3}'输出第三个字段(第三列 index)
#删除多少天以前的日志,假设输入10,意味着10天前的日志都将会被删除
DELTIME=30
#SECONDS=date -d  "$(date  +%F) 当前时间 - ${DELTIME} days" +%s 30
SECONDS=$(date -d  "$(date  +%F) -${DELTIME} days" +%s)
#判断日志文件是否存在,不存在需要创建。
if [ ! -f  "${CLEAN_LOG}" ]
then
touch "${CLEAN_LOG}"
fi
#删除指定日期索引 clean time is 当前时间到秒
echo "----------------------------clean time is $(date +%Y-%m-%d_%H:%M:%S) ------------------------------" >>${CLEAN_LOG}
#遍历上面获取INDEXS
for del_index in ${INDEXS}
do
#根据索引的名称的长度进行切割,不同长度的索引在这里需要进行对应的修改 例:es-index-2021-04-09按照-分割获取第三、四、五个2021-04-05
        indexDate=$( echo ${del_index} |cut -d "-" -f 3,4,5 )
        indexSecond=$( date -d ${indexDate} +%s )
        #判断SECONDS-indexSecond  -gt0 是否等于0 
        if [ $(( $SECONDS- $indexSecond )) -gt 0 ]
                then
                        echo "${del_index}" >>${CLEAN_LOG}
            #取出删除索引的返回结果
                        delResult=`curl -s  -XDELETE "${SERVER_PORT}/"${del_index}"?pretty" |sed -n '2p'`
            #写入日志
                        echo "clean time is $(date)" >>${CLEAN_LOG}
                        echo "delResult is ${delResult}" >>${CLEAN_LOG}
 
        fi
done

把以上文件保存到/usr/local/shell/clean__es_index.sh

然后需要每天执行一次此脚本

用命令行crontab -e打开crontab配置文件,添加如下内容:

0 23 * * * /usr/local/shell/clean_es_index.sh

0 23 * * * 代表每天晚上十一点开始执行

https://tool.lu/crontab --cron表达式测试工具地址

  • 1
    点赞
  • 0
    评论
  • 2
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

Bradleyxx

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值