开发之前把接口日志写入ES时,感觉设计并不合理。当然,我也不知道怎么设计才是合理的。总之,就是无法像处理openresty日志那样,按天生成1个ES索引,这样就可以简单匹配月份,直接删除整个月的索引数据了。
但是,现在所有接口日志写入进1个索引里。我想删除几百天,比如200天前的数据,研究了好久。
下面的脚本,我找了2天,按照网上的文档,也修改了2天。正好最近第3次开始学习shell,发现结合shell知识,解决问题还是很有效果。
下面的脚本,就可以删除200天前的ES数据。[[email protected]~]# cat /yqd/sh/Clean_Elasticsearch_Yqdlog.sh
#!/bin/bash
curl -X POST "10.253.40.87:9200/yqdlog/_delete_by_query?pretty" -H 'Content-Type:application/json' -d '
{
"query": {
"range": {
"bank_interfacelog_createTime": {
"gte": "now-200d",
"lte": "now",
"format": "epoch_millis"
}
}
}
}&#