如何从头开始收集系统统计信息?

时间:2015-09-11 17:56:46

标签: linux network-programming system

我想获得一些系统统计信息。我知道我可以使用collectd,但我这样做是为了娱乐和学习。我会通过检查/proc/:id中文件的内容来做到这一点,最终通过解析某些命令的结果,如netstat。我只是想每1秒检查一次文件或命令输出的内容 - 因为我想对系统有详细的见解。这样的方法是否正常,或者它会减慢和错误的基准?

1 个答案:

答案 0 :(得分:1)

如果这是为了娱乐和学习,那么通过解析/处理自己,您将获得更多乐趣并学到更多知识。反对解析命令输出的另一个论点是,根据我的经验,对于生产代码,这不是你的情况,它可能是不可靠的(即取决于工具的版本和LOCALE)。

您可以通过研究现有工具的实施来学习。 Busybox版本存在时,比完整版更简单。

这就是busybox' route解析/proc/net/route的方式:

http://git.busybox.net/busybox/tree/networking/route.c#n516

netstat要复杂得多,不足为奇。

http://git.busybox.net/busybox/tree/networking/netstat.c

...有时候,这可以通过解析/proc文件来完成。以下是ifconfig如何使用IO控件获取有关接口的一些信息:

http://git.busybox.net/busybox/tree/networking/interface.c#n607

方法可以吗?

或者它会减慢和错误的基准?

嗯,这是解析现有命令输出的第三个参数:越接近信息源,就越新。使用快速语言也有帮助。如果你迟到几秒钟,这真的很重要吗?它取决于你。如果只是为了显示一些信息,到目前为止,路径中最慢的元素将是人脑阅读结果并从中做出决定。