我想得到一些系统统计数据。我知道我可以使用收藏品,但我这样做是为了好玩和学习。我会通过检查/proc/:id中的文件内容,最终解析一些命令的结果,比如netstat。我只想每1秒检查一次文件或命令输出的内容,因为我想对系统有详细的了解。这样的方法可以吗,还是会慢下来和错误的基准?
发布于 2015-09-12 06:39:07
如果这是为了乐趣和学习,您将有更多的乐趣和了解更多的解析/proc自己。另一个反对解析命令输出的论点是,在我的经验中,对于生产代码(这不是您的情况),它可能是不可靠的(即取决于工具和区域设置的版本)。
您可以通过学习现有工具的实现来学习。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
然而,...sometimes不能通过解析/proc文件来实现这一点。下面是ifconfig如何使用IO控件获取有关接口的一些信息:
http://git.busybox.net/busybox/tree/networking/interface.c#n607
这个方法可以吗?
是。
或者它会放慢速度和错误的基准?
这是第三个反对解析现有命令输出的参数:您越接近信息源,就越接近最新的信息来源。使用一种快速的语言也有帮助。如果你迟到几秒钟,这真的重要吗?由你决定。如果这只是为了显示一些信息,路径中最慢的元素,到目前为止,将是人脑读取结果并做出决定。
https://stackoverflow.com/questions/32529449
复制相似问题