我正在尝试为 Ubuntu 开发一个系统统计工具,它将存储有关进程/用户资源利用率的数据。我将这些数据存储在我自己的日志文件中,例如/var/log/<process>.log
.我想知道是否有任何 API(例如procfs
用于收集有关进程的数据)来使用 C 编程语言解析我自己的日志文件。这些日志文件将仅包含用户名、进程 ID、CPU%、MEM%、I/O 等。
答案1
您想要或需要什么 API?日志文件是文本,请使用您可能认为有用的任何文本解析实用程序、脚本或语言。
就我个人而言,我选择的语言往往是awk
,但那是因为我熟悉它。虽然有时简单grep
或sed
足够了。
但实际上这完全取决于您想要对日志执行的操作。可能性是无限的。
答案2
当您创建您的自己的日志文件,我认为你也应该创建自己的 API。
答案3
您有多种选择,可以根据您的需求和技能进行选择。
Perl - 一种非常适合文本操作的脚本语言。 Perl 经常使用 SED 和 AWK
Awk - 您可以轻松地在 shell 脚本中使用它。 awk 使用一些比 sed 更复杂的语法(但仍然很简单)。 awk 比 sed 快得多。
Sed - 就像 awk 一样,sed 可以在 shell 脚本中使用。 Sed 对于大多数人来说都很容易学习。
Python - 如果您想要一个复杂的日志系统并且想要一个快速的审核系统,请尝试Python。但是,如果你不懂Python,那么需要一些时间来学习。
答案4
您可能会考虑集成RRD工具)到你的工作流程中,因为它似乎已经在做很多你正在寻找的事情了。网上有许多记录良好的示例,因此入门应该不会太难。