多个文件到单个文件的符号链接



我有一个场景,我想将多个文件的日志重定向到同一符号链接。
我有三个文件file1.logfile2.logfile3.log
file1.log具有

This is file 1

file2.log具有

This is file 2

file3.log具有

This is file 3

现在我想创建所有这些文件到file.log的符号链接使得file.log的内容是

This is file 1
This is file 2
This is file 3

这是动态发生的。即,如果file1.log的内容被修改,则例如This line append to file1.log,则file1.log应显示

This is file 1
This is file 2
This is file 3
This line append to file1.log

有标准的方法吗?我已经在这里呆了很长一段时间了
我使用的是ubuntu 18.04python 3.6.9
-------------------------编辑------------------------------
这不是我拥有的所有文件,比如名为file*.log的20个文件,可能有多个文件,比如f1X.logf2X.log,需要重定向到f1.logf2.log

from itertools import chain
from pathlib import Path
from time import sleep
log_path_list = [p for p in Path('.').glob('*.log') if p.name != 'file.log']
log = Path('file.log')
files = []
for log_path in log_path_list:
files.append(log_path.open())
lines = chain(*map(lambda f: (line for line in f),files))
with log.open('w') as flog:
for line in lines:
flog.write(line)
flog.flush()
try:
while True:
oneline = ""
for f in files:
f.seek(0, 2)
oneline = f.readline()
if not oneline:
continue
flog.write(oneline)
if oneline:
flog.flush()
else:
sleep(0.3)
except Exception as e:
print(e)
for f in files:
f.close()

这不是符号链接,但它会将所有日志文件中的所有内容输出到file.log,然后将任何新行附加到file.log

只要file.log需要更新,python进程就应该保持不变。

我不认为这是一个明智的解决方案,但如果这是你的唯一方法,那么你就有了解决方案的开始。

相关内容

  • 没有找到相关文章

最新更新