通过SSH读取实时日志

时间:2011-11-23 21:42:45

标签: objective-c cocoa xcode4

我处于Cocoa / Objective-C日志阅读应用程序的早期阶段,我无法找到最有效的方法。日志是“实时”的,只能通过SSH连接到远程主机。数据将在我的应用程序中解析。 (这是一个Mac OSX应用程序,而不是在SL上使用XCode 4.0的iOS)

到目前为止,我找到了两种方法:

  1. 使用NSTask结合执行ssh和'file-tail -f -n0' 使用NSPipe。
  2. 在我的应用程序中包含文件尾部(在Apple的开源页面上可用)并从那里开始。
  3. 如果它只是HTML或XML我需要抓住我会没事的,但是对于“实时”日志的ssh和文件拖尾的需求使这很难弄明白。

    有什么建议吗?在我错过的某个框架中是否隐藏了类似于“文件尾”的东西? 非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

文件尾部不是真正的问题 - 您可以使用dispatch_source之类的东西来模拟它。自己写的难点是ssh客户端。有一些开源客户端,但据我所知,没有一个真正的结构是一个liberey。还有一些是有问题的许可证。

使用NStask可能是一个开源的liberey和75行的胶水代码,或者大约3k的代码行(抱歉总猜测,我从来没有写过ssh v2客户端,只有v1)。

NStask通常比内置代码更脆弱,但是使用ssh脆弱的主要来源可能是网络+远程配置+本地配置。 NStask将在噪音中丢失。

我赞成在这里使用NStask。