需求:
1.我需要在一个目录下所有的日志里面进行大量搜索,查找例如某个关键字,或者设备wwn,mac,ip地址,uuid等等。查看关键字在哪个log文档里面,本来想百度下有没有类似的软件,不过找啦半天没找到,都是基于word批量搜索的,需求不符,有知道的帮忙留个言,谢谢!
2.公司能用开源的系统,绝对不会自己开发系统,关键来啦,领导经常提一些需求,特么本来免费的东东,还特么要求那么多,又不舍得花钱自己开发,苦逼,所以得经常要修改开源系统里面的一些东西,但又不想一点一点查看代码去查找,费时费力,直接web层面抓取一些信息,进行搜索代码位置。
脚本实现功能:
- 利用python sys包把一个目录下所有的日志进行路径整理。
- 利用 python的re正则进行搜索日志。
脚本信息如下,根据以前初学的脚本改的,写的太烂,嘿嘿
__author__ = 'l4537'
#coding:utf-8
import os,re,sys
def Sea(file,scr):
pass
f = open(file,"r",encoding='UTF-8')
try:
data = f.read()
# with open(file, 'rb') as f:
# data = f.read()
b = re.findall(str(scr),data)
return b
except Exception as e:
return []
def WWn(wwn):
a = re.findall(r":",wwn)
b = []
b.append(wwn.lower())
if len(a) == 0:
k = []
for i in range(0,16,2):
z = i + 2
k.append(wwn[i:z])
k = ":".join(k).lower()
b.append(k)
elif len(a) > 0:
b.append(re.sub(r'(:)','',wwn).lower())
return b
#小写
def Wwn_re_xiaoxie(s):
return re.sub(r'()','',s).lower()
def filesearch(dress):
listdir = []
listtouch = []
list = os.listdir(dress)
for k in list:
kk = os.stat(k)
if kk[0] == 16788 or kk[0] == 16895:
a = os.listdir(str(str(os.getcwd()) + str(os.sep) + str(k)))
listdir.append(a)
if kk[0] == 33206 or kk[0] == 33279:
listtouch.append(k)
def Dic_sea():
listdir = []
for i in os.walk(os.getcwd(), onerror=None, followlinks=False):
if i[2] != []:
for k in i[2]:
file = str(i[0] + str(os.sep) + k)
kk = os.stat(file)
if kk[0] == 33206 or kk[0] == 33279:
listdir.append(str(i[0] + str(os.sep) + k))
for i in listdir:
print(i)
print("搜索其他请按1:\n\n搜索wwn请按2:\n\n退出请按3;")
main_1 = input(u"请输入要菜单号:")
if main_1 == "2":
zz = str(input(u"请输入要搜素的wwn:"))
list_wwn = WWn(zz)
for i in listdir:
if i == "dome.py":
pass
else:
for k in list_wwn:
bb = Sea(i,k)
if len(bb)> 0:
print(i,u"文件存在该字符串")
if main_1 == "1":
z = str(input(u"请输入要搜素的字符串:"))
for i in listdir:
if i == "dome.py":
pass
else:
b = Sea(i,z)
if len(b)> 0:
print(i,u"文件存在该字符串")
else:
pass
Dic_sea()
网友评论