定时删除ES过期日志.sh脚本

本文介绍了一位技术员编写的一个bash脚本,用于在Linux环境下定期清理Elasticsearch日志,根据索引类型(普通和特殊)设置不同的保留时间,以解决日志过多导致的空间问题。
摘要由CSDN通过智能技术生成

起因是公司ES日志过多,每隔一段时间就会造成分配空间被占满,日志不能存入新的,只能读取日志。

网上查询了之后自己写了一个脚本,linux定时执行后定时删除ES日志,分为特殊日志和普通日志,这两种删除时间不同,可配置。

#!/bin/bash
#需要修改的注意 IP 索引名称  普通索引删除时间  特殊索引删除时间
index1="biz-mca-mf-log"
index2="maint-collect-server"
# 获取出所有索引,排除掉index1,index2
Indexs=`curl 'http://172.39.8.9:9200/_cat/indices' | awk '{print $3}' | egrep -v "^\." | egrep -v "^${index1}|^${index2}"`
# 只获取index1,index2
Indexs2=`curl 'http://172.39.8.9:9200/_cat/indices' | awk '{print $3}' | egrep -v "^\." | egrep "^${index1}|^${index2}"`
#普通索引删除时间 -7表示7天
LAST_DATE=$(date -d "-7 days" "+%Y-%m-%d")
#特殊索引删除时间 -30表示30天
LAST_DATE2=$(date -d "-30 days" "+%Y-%m-%d")

#删除普通索引
for index in $Indexs;
do
echo $index | egrep "[0-9]{4}.[0-9]{2}.[0-9]{2}"
if [ $? == 0 ];
then
Now_time=`echo $index | egrep -o "[0-9]{4}.[0-9]{2}.[0-9]{2}" | awk -F '.' '{print $1$2$3}'`
if expr $LAST_DATE ">=" $Now_time;
then
curl -XDELETE "http://172.39.8.9:9200/${index}"
fi
fi
done

#删除特殊索引
for index2 in $Indexs2;
do
echo $index2
echo $index2 | egrep "[0-9]{4}.[0-9]{2}.[0-9]{2}"
if [ $? == 0 ];
then
Now_time2=`echo $index2 | egrep -o "[0-9]{4}.[0-9]{2}.[0-9]{2}" | awk -F '.' '{print $1$2$3}'`
if expr $LAST_DATE2 ">=" $Now_time2;
then
curl -XDELETE "http://172.39.8.9:9200/${index2}"
fi
fi
done

只需批量替换路径,index1和index2为特殊日志,其他都是普通日志

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值