定时删除ES索引

定时删除索引脚本

索引格式如下,xxxx-yyyy-mm-dd

 代码如下:delete_index_over10day.sh

 1 #!/bin/bash
 2 #删除索引格式:xxxx-2020-03-25
 3 ###################################
 4 #删除早于3天的ES种的索引 --zm
 5 #添加到crontab,每天晚上11:45执行
 6 #45 23 * * * sh /root/delete_index_over10day.sh
 7 ###################################
 8 #主机IP
 9 host_ip="127.0.0.1:9200"
10 #超过7天的索引将要删除
11 delete_overday=10
12 
13 
14 function delete_indices() {
15     comp_date=`date -d "${delete_overday} day ago" +"%Y-%m-%d"`
16     date1="$1 00:00:00"
17     date2="$comp_date 00:00:00"
18 
19     t1=`date -d "$date1" +%s`
20     t2=`date -d "$date2" +%s`
21 
22     index_name="$2-$1"
23 
24     if [ $t1 -le $t2 ]; then
25         echo "$index_name Expired , will delete !"
26         curl -XDELETE http://${host_ip}/${index_name}
27     fi
28 
29 }
30 
31 curl -XGET http://${host_ip}/_cat/indices/jaeger-span-* | awk -F" " '{print $3}' | sed 's/jaeger-span-//g' | while read LINE
32 do
33     #调用索引删除函数
34     delete_indices $LINE "jaeger-span"
35     delete_indices $LINE "jaeger-service"
36     echo "${LINE} index deleted !"
37 done

 最后将该脚本执行文件加入crontab计划任务中。

猜你喜欢

转载自www.cnblogs.com/zzming/p/12608188.html