es版本 7.10.0 由于使用时间戳方式不合适这次删除,只能从开发那儿生成的索引名字进行删除,还好生成的索引比较有规律,本次要删除的索引格式access_logger_+不同的日期。 本脚本直接在生产上使用了,还没有经过优化,但是可以使用。 本脚本不之处,遇到不存在的索引会报错404后继续执行shell,没有跳过404的错误提示,只保留执行成功的信息。
#!/bin/bash
es_cluster_ip=127.0.0.1
startdate="$1"
date1=$(date -d "$1" "+%s")
date2=$(date -d "$2" "+%s")
date_count=$(echo "$date2 - $date1" | bc)
day_m=$(echo "$date_count"/86400 | bc)
for ((sdate = 0; sdate < "$day_m"; sdate++)); do
echo $(date -d "$startdate $sdate days" "+%F")
del_date=$(date -d "$startdate $sdate days" "+%F")
curl -u "elastic:abc123" -XDELETE http://${es_cluster_ip}:9200/access_logger_$del_date
curl -u "elastic:abc123" -XDELETE http://${es_cluster_ip}:9200/device_gateway_monitor_$del_date
done
|