只移动文件内容,不移动任何文件处理程序/poin

2024-04-25 13:00:21 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

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

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

谢谢


Tags: 文件数据用户脚本权限编辑内容进程
1条回答
网友
1楼 · 发布于 2024-04-25 13:00:21

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

然后你可以使用这个新的文件_名称.log对这个新文件做任何你想做的事。你的原始日志文件也完好无损。 我知道这有点扭曲,但这就是我现在的想法!!!你知道吗

相关问题 更多 >