Elasticsearch索引自动删除
2024-10-11 05:14:15
简介
脚本分2部分,1部分查找符合条件的索引名,2脚本调用1脚本,进行删除操作
脚本
查找符合条件的,默认大于30天
# coding:utf-8
__author__ = 'Jipu FANG'
from elasticsearch import Elasticsearch
import re
import time
import datetime
now = time.localtime()
data1 = datetime.datetime(now[0], now[1], now[2])
es=Elasticsearch("http://192.168.30.135:9200")
res = es.cat.indices()
l = res.strip().split()
def dindex(day=30):
index = []
for i in l:
if re.search('\d+\.\d+\.\d+$', i):
itime = time.strptime(re.findall('\d+\.\d+\.\d+$', i)[0], "%Y.%m.%d")
data2 = datetime.datetime(itime[0], itime[1], itime[2])
d = (data1-data2).days
if int(d) > int(day):
index.append(i)
return index
if __name__ == '__main__':
print dindex()
对符合条件的索引,进行删除操作
# coding:utf-8
__author__ = 'Jipu FANG'
import requests
import json
import time
from multiprocessing.dummy import Pool as ThreadPool
import re
import indexs
'''
delect index url:"http://192.168.30.135:9200/app-2017.05.16" headers:'Content-Type: application/json' data:{"query": {"match_all":{}}}'
select log curl: "http://192.168.30.135:9200/_search" headers:'Content-Type: application/json' data:{"query": {"match": {"message": {"query": "ERROR|77" }}}'
'''
# request API
class ES_API:
def __init__(self, url, data, headers):
self.url=url
self.data=data
self.headers=headers
def delete(self):
r = requests.delete(url=self.url, data=json.dumps(self.data), headers=self.headers)
v=r.text
print(v)
def post(self):
r = requests.post(url=self.url, data=json.dumps(self.data), headers=self.headers)
v=r.text
print(v)
# 删除索引,day保留多少天
def delete_index(day):
for i in indexs.dindex(day):
url = r"http://192.168.30.135:9200/%s" %(i)
headers = {'Content-Type':'application/json'}
data = {"query": {"match_all":{}}}
C=ES_API(url, data, headers)
C.delete()
time.sleep(3)
return "Delete indexs OK!"
# 关闭索引,day保留多少天,当索引处于关闭状态,资源占用比较少
def close_index(day):
for i in indexs.dindex(day):
url = r"http://192.168.30.135:9200/%s/_close?pretty" %(i)
headers = {'Content-Type':'application/json'}
data = {}
C=ES_API(url, data, headers)
C.post()
time.sleep(3)
return "index status close ok!"
delete_index(30)
time.sleep(60)
close_index(15)
最新文章
- iOS开发者联系 联系方式
- 项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享
- 动态时间归整/规整/弯曲(Dynamic time warping,DTW)
- runc的detach, console, tty等相关问题
- HTML5开发注意事项及BUG解决
- 分享C#原生ID(流水号)生成功能实现
- zoj 3529 A Game Between Alice and Bob 博弈论
- Android 两个Activity进行数据传送 发送
- oracle timestamp的转换
- Android : 如何在WebView显示的页面中查找内容
- 我的Python成长之路---第六天---Python基础(20)---2016年2月20日(晴)
- Python学习笔记【第八篇】:Python内置模块
- 《CSS世界》读书笔记(二)
- ppt复制文本框文字到word的方法
- Flutter - TabBar导航栏切换后,状态丢失
- H - The Frog's Games
- 阿里巴巴数据库连接池 druid配置详解
- BZOJ.1014.[JSOI2008]火星人(Splay 二分 Hash)
- IE下的Firebug——IE WebDeveloper js debug
- chrome和IE下的滚动条样式修改
热门文章
- mysql安装简单教程(自动安装/配置安装)
- 【转】npm包管理器那些事
- PHP入门怎么选?大学生适合学习吗?
- ELK介绍
- Lucene.net(4.8.0)+PanGu分词器问题记录一:分词器Analyzer的构造和内部成员ReuseStategy
- Unity3D中通过Animator动画状态机获取任意animation clip的准确播放持续时长
- 微信小程序去除button按钮的边框
- 体验CSDN-Markdown
- poj:4091:The Closest M Points
- ASP.NET Core WebApi 返回统一格式参数