說明
主要用在索引名為 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
