定时删除索引脚本
索引格式如下,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计划任务中。