我想不出在一段时间后重新执行tail命令的算法。换句话说,刷新。现在,这段代码可以完美地用于任何带有*.log的现有文件。但是,当创建一个新日志时,“tail”命令不会看到新文件,除非我停止并再次执行该命令。所以我尝试着提出一个算法,让python重新执行子流程.Popen行后x时间量。。。我尝试了一个嵌套的while循环,但它只是不断地打印日志文件的最后一行。。。我试着用“看尾…”但它不喜欢它而且输出是空白的。。。在
下面是我现在的代码:
syslog = []
tail = subprocess.Popen('tail -f -n 1 /mnt/syslog/**/*.log', shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
while True:
line = tail.stdout.readline()
line = line.strip('\n')
if(re.search('mnt',line)) or (line == ''):
pass
else:
syslog.append(line)
multithread_engine(syslog)
del syslog[:]
目前没有回答
相关问题 更多 >
编程相关推荐