如何从linux中的文件中获取修改后的数据?

时间:2013-07-07 05:33:27

标签: c linux syslog

我正在为我的工具设计一个记录器插件。我在目标板上有一个busybox syslog,我想从中获取syslog数据,这样我就可以通过我转发到我的主机(不是通过远程端口转发syslog)最初我使用了syslog将它收到的消息转发到命名管道的能力,但这只能通过补丁添加,这在我的情况下是不可行的。所以现在我的想法是在syslog中写一个配置文件将收到的所有日志消息转发到文件并跟踪文件以获取我的数据。我可以使用tail函数来监视我的文件更改,但我的busybox尾部不支持“--follow”选项,因为syslog执行logrotate导致“tail - f“失败。而且我也不确定这是否是一个很好的方法来做。所以我想问的是有另一种方式我可以从文件中获取修改数据。我可以使用inotify,但那可以只用于跟踪文件更改。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以尝试“diff”实用程序(或git-diff,它具有更多功能)。

答案 1 :(得分:0)

您可以编写可以接收inotify事件的脚本/程序。并且脚本重新打开文件并从之前保存的最后读取文件位置开始读取直到EOF。