上下文:
我在 Linux 上。我正在为 Sensu 编写磁盘使用扩展。扩展必须是非阻塞的,因为它们包含在代理的主代码循环中。它们还必须非常轻巧,因为它们可能每 10 秒触发一次,甚至每秒触发一次。
所以我无法生成新的可执行文件来收集磁盘使用信息。在 Ruby 中,我只能在/proc 和/sys 上执行 File.open() 之类的操作,读取内容,解析它,file.close(),然后打印结果。重复。
我找到了 sys-filesystem gem,它似乎拥有我需要的一切。但如果可以避免的话,我宁愿不强制扩展依赖于 gems。如果事实证明它是最好的方法,我会使用 gem,但是有没有更好的选择?不需要大量编码的东西?
最佳答案
可以通过系统调用statfs
获取信息
http://man7.org/linux/man-pages/man2/statfs.2.html
我可以看到这里有一个 ruby 接口(interface):
关于Ruby:从/proc 获取 Linux 上的磁盘使用信息(或其他一些非阻塞且不会产生新进程的方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29018932/