![从快速旋转的日志中捕获输出](https://linux22.com/image/1412597/%E4%BB%8E%E5%BF%AB%E9%80%9F%E6%97%8B%E8%BD%AC%E7%9A%84%E6%97%A5%E5%BF%97%E4%B8%AD%E6%8D%95%E8%8E%B7%E8%BE%93%E5%87%BA.png)
我正在处理一个行为不当的第三方程序,如果我能向他们提供调试日志,供应商似乎很乐意提供帮助。他们告诉我如何打开和关闭调试日志,但是程序中的某个地方对日志文件的限制为 65 KB - 根据供应商的说法,这是硬编码的。一旦达到此日志限制,整个日志就会被删除,并创建一个具有相同名称的新文件。因此,在删除日志并创建新日志之前,仅保存了大约 1 分钟的调试日志。尝试tail -f
日志没有帮助,因为当创建新日志时,它不再是同一个文件,所以tail
只是停止。
由于程序运行在嵌入式 Linux 上,且工具支持极少(甚至没有 ssh 或 ftp,只有 telnet 可以连接),因此整个事情变得更加复杂。没有find
命令,没有locate
or slocate
,我甚至没有谈论编译器。那里有 shell -sh
并且ash
- 仅此而已。我真的不知道如何捕获大约 20 分钟的调试日志。任何建议都将不胜感激。
答案1
您可以尝试编写一个小脚本,每约 50 秒读取日志文件并将其附加到另一个文件。
如果您有 cat 或 echo,这应该相对容易。
如果您编辑问题以发布日志文件的示例名称,我可以帮助您在 bash 脚本中匹配该名称