python 脚本定时删除 elk索引
脚本如下
一、python 脚本如下
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 43 44 45 46 47 48 49 50 51 52 | #! /usr/bin/python # -*- coding=utf-8 -*- import urllib import urllib.request import re import datetime import time import codecs from urllib.request import urlopen import requests def match(urlGet): urlGet1 = urllib.request.urlopen(urlGet).read() #去除空格 urlGet2 = codecs.getdecoder( "unicode_escape" )(urlGet1)[ 0 ] urlGet3 = re.sub( ' +' , '|' ,urlGet2) #已换行为分隔符 urlGet4 = urlGet3.split( '\n' ) return urlGet4 def indexGet(urlGet4): for indexFull in urlGet4: try : #获取索引名称 indexpattern = indexFull.split( '|' )[ 2 :: 9 ] #正则匹配年月日 pattern = re. compile (r '\d{4}\.\d{1,2}\.\d{1,2}' ) #将j列表转成字符串,获取匹配的索引 resMatch = pattern.findall("".join(indexpattern)) # print(resMatch) #30天以前索引 dataNow = datetime.date.today() daysBefore30 = dataNow - datetime.timedelta(days = 30 ) dateFormat = daysBefore30.__format__( '%Y.%m.%d' ) if dateFormat in resMatch: httpDelete(dateFormat) else : pass except : pass def httpDelete(urlDeleteDate): indexFonts = [ 'ngx-' , 'tom-' , 'hap-' , 'switch-' ] for indexFont in indexFonts: urlDelete = 'http://192.168.1.198:9200/%s%s' % (indexFont,urlDeleteDate) print (urlDelete) # responseDelete = requests.delete(urlDelete) if __name__ = = '__main__' : urlGet = 'http://192.168.1.198:9200/_cat/indices' indexGet(match(urlGet)) |
二、linux crontab
1 2 | #每天凌晨1点执行。删除30天前的索引 00 01 * * * / usr / bin / python / home / shell / delIndex.py |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端