0

我正在频繁地分析日志文件的数据并进行相应的处理。作为输入的日志文件是一个无限增长的文件。一个长时间运行的进程写入它,它属于 root 用户。

我拥有日志文件的所有文件权限。我想要做的是只移动文件内容直到那个点(获取文件内容并清除文件)而不干扰另一个进程。最好通过python脚本。

[编辑](即)。,我需要从日志文件(主)中剪切并粘贴所有内容,直到那个时间点,然后将它们放入另一个(辅助)日志文件中。我将使用此辅助日志文件进行数据分析。同时,如果长时间运行的进程将任何内容写入主日志文件,它不应该丢失。如果我将新数据与其他内容一起放入辅助日志文件,这不会有问题。

[编辑 2] 我面临的主要问题是从主日志文件中获取文件内容后清除它们。我需要确保在从主日志读取并将它们写入辅助日志并从文件中删除这些内容时,写入文件的任何日志都不会丢失。

我查看了 TimedRotatingFileHandler 但在这方面对我没有帮助。还有其他建议吗?

谢谢

4

1 回答 1

0

linux尾文件的方法很简单。记录过程开始后,立即在您的日志文件上使用此命令:

  tail -f log_file_name.log >> /tmp/new_file_name.log &


[EDIT] tail -f log_file_name.log >> /tmp/new_file_name.log | tail -f /tmp/new_file_name.log | xargs -I TailOutput echo sed -i '/TailOutput/d' log_file_name.log

然后,您可以使用这个 new_file_name.log 对这个新文件做任何您想做的事情。您的原始日志文件也完好无损。我知道这有点扭曲,但这就是我现在能想到的方式!!!

于 2013-09-13T09:15:07.697 回答