定时删除10天前的Es索引
说明
主要用在索引名为 xxxx-yyyy.MM.dd 这种,可以自定义修改下边的脚本
删除索引shell
创建 delete_es_indices_over_10_day.sh
#!/bin/bash ################################### #删除早于十天的ES集群的索引 ################################### function delete_indices() { comp_date=`date -d "10 day ago" +"%Y-%m-%d"` date1="$1 00:00:00" date2="$comp_date 00:00:00" t1=`date -d "$date1" +%s` t2=`date -d "$date2" +%s` if [ $t1 -le $t2 ]; then echo "$1时间早于$comp_date,进行索引删除" #转换一下格式,将类似2017-10-01格式转化为2017.10.01 format_date=`echo $1| sed 's/-/\./g'` curl -XDELETE http://10.2.7.70:9204/*$format_date fi } curl -XGET http://10.2.7.70:9204/_cat/indices | awk -F" " '{print $3}' | awk -F"-" '{print $NF}' | egrep "[0-9]*\.[0-9]*\.[0-9]*" | sort | uniq | sed 's/\./-/g' | while read LINE do #调用索引删除函数 delete_indices $LINE done
赋执行权限 sudo chmod +x delete_es_indices_over_10_day.sh
如果换服务器,那么请替换ip:port到自己的es服务器地址
添加定时任务
这里设置每天执行一次
执行crontab -e
修改当前系统的定时任务,下边是添加这一行,每天晚11:30删除一次过期10天以上的索引
30 23 * * * sh /home/hellxz/delete_es_indices_over_10_day.sh
本文作者:东北小狐狸
本文链接:https://www.cnblogs.com/hellxz/p/11213266.html
版权声明:本作品采用自由转载-非商用-非衍生-保持署名 (CC BY-NC-ND 3.0)许可协议进行许可。
分类:
ELK/EFK/Solr
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步