脚本如下
一、python 脚本如下
#! /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(' ') 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点执行。删除30天前的索引 00 01 * * * /usr/bin/python /home/shell/delIndex.py