我正在尝试解析日志目录中的多个日志文件,以搜索列表中任意数量的字符串和服务器名称。我感觉已经尝试了无数个选项,并且只使用一个日志文件运行良好..但是,当我尝试遍历目录中的所有日志文件时,似乎一点进展也没有。
if args.f:
logs = args.f
else:
try:
logs = glob("/var/opt/cray/log/p0-current/*")
except IndexError:
print "Something is wrong. p0-current is not available."
sys.exit(1)
valid_errors = ["error", "nmi", "CATERR"]
logList = []
for log in logs:
logList.append(log)
#theLog = open("logList")
#logFile = log.readlines()
#logFile.close()
#printList = []
#for line in logFile:
# if (valid_errors in line):
# printList.append(line)
#
#for item in printList:
# print item
# with open("log", "r") as tmp_log:
# open_log = tmp_log.readlines()
# for line in open_log:
# for down_nodes in open_log:
# if valid_errors in open_log:
# print valid_errors
down_nodes
是一个预先填好的列表,它在脚本中更高级别地包含了一些被标记为离线的服务器。
有一些我正在尝试的不同方案已被注释掉。
logList = []
for log in logs:
logList.append(log)
我认为将每个单独的日志文件放入一个列表中,然后循环遍历该列表并使用
open()
接着使用readlines()
可能是前进的方向,但我在这里缺少某种逻辑...也许我没有正确地思考。我真的需要一些指针,请帮忙。
谢谢。