
有的时候我们在使用ES时,由于资源有限或业务需求,我们只想保存最近一段时间的数据,所以有如下脚本可以定时删除数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
index_name=$1 daycolumn=$2 savedays=$3 format_day=$4
if [ ! -n "$savedays" ]; then echo "the args is not right,please input again...." exit 1 fi
if [ ! -n "$format_day" ]; then format_day='%Y%m%d' fi
sevendayago=date -d <span class="string">"-<span class="variable">${savedays}</span> day "</span> +<span class="variable">${format_day}</span>
curl -XDELETE "172.16.150.170:9200/${index_name}/_query?pretty" -d " { "query": { "filtered": { "filter": { "bool": { "must": { "range": { "${daycolumn}": { "from": null, "to": ${sevendayago}, "include_lower": true, "include_upper": true } } } } } } } }"
echo "ok"
|
注解:脚本传入参数说明:1.索引名;2.日期字段名;3.保留最近几天数据,单位天;4.日期格式,可不输(默认形式20171020)
近期评论