我目前正在尝试Logstash使用File Input方法在Solaris上工作。但我遇到了一些错误(见LOGSTASH-665)。经过深入挖掘后,我的系统上的File.stat原生支持(SunOS 5.10,JDK 1.6.0_21,32位)完全不足,所以我正在寻找一种正确处理它的方法。
具体来说,我想访问inode信息。基于我可以收集的关于文件的元数据(比如它的路径和solaris上可用的任何内容),我想计算一个对于该文件唯一的数字,当文件被另一个具有相同文件的文件替换时,该数字会发生变化名称。起初我想过简单地使用文件路径的哈希并使用this function作为替换,但实际上,当文件被翻转时,数字不会改变,所以我还需要访问ctime信息..
..或者进行系统调用以获取ls -li
结果以通过另一种方式获取真实的inode号。
问题是我之前从未使用过ruby,我更习惯java,所以我很难找到解决方案。每个建议都将不胜感激。
答案 0 :(得分:0)
我所知道的最佳解决方案是使用JNI或JNA包装本机调用。
似乎有几个项目已经完成了这项工作,尽管我还没有使用其中任何一项。请参阅此问题:Is there a Java library of Unix functions?