在谷歌和美国能源部的资助下,达特茅斯大学的两位计算机科学家正在更新古老的grep和diff Unix命令行工具,以处理更复杂的数据类型。
这样的更新是需要的,因为“我们现在倾向于有更多基于模型的配置语言,它们有跨越不止一行的有意义的结构,”达特茅斯研究生Gabriel Weaver说,他和达特茅斯计算机科学教授Sean Smith一起,在本周于波士顿举行的Usenix大型安装系统管理(LISA)会议的海报会议上,Weaver展示了新的实用程序。
研究人员认为,新的程序将允许管理员从配置文件、日志文件和其他操作数据来源提取有意义的数据。
Grep和diff是所有Linux和Unix发行版中都可以使用的基于命令行的文本分析工具。两者都被设计成逐行解析文档。Grep提供了在多个文本文件和文件夹中搜索特定文本块或正则表达式的能力。Diff比较两个文档并突出它们之间的差异。
与大多数Unix实用程序一样,这些程序的输出可以链接或管道连接到其他实用程序,因此可以将它们合并到脚本中,以自动化例程系统管理任务。
新的程序被称为上下文自由Grep和层次差异,将提供解析数据块而不是单行的能力。对于每一种新的数据结构类型,供应商将提供标识数据基本结构的模式库,然后软件将使用该模式库“从文档中提取感兴趣的结构”,Weaver说。
这些工具可以让管理员能够处理网络设备和基础设施软件生成的更复杂形式的数据。例如,思科为其路由器和交换机设计的操作系统IOS(网络操作系统)将提供类似块的数据结构的运营数据。
有了这些数据,像diff这样的工具“可能太低级了”,Weaver说。“Diff并没有真正注意你试图区分的语言结构。”他看到过这样的情况:dif报告对一个文件做了10个更改,而实际上只做了两个更改,其余的数据只是被转移了。
Grep在数据块方面也有问题。“使用正则表达式,您实际上没有能力提取任意深度嵌套的内容,”Weaver说。
上下文无关的Grep仍处于设计阶段,但将在未来几个月内完成。虽然研究人员还没有公布代码,但分层差异的原型已经完成。
谷歌对这项技术的兴趣源于该公司在云计算领域的努力,在云计算领域,它必须在广泛的网络设备上实现操作自动化,Weaver说。美国能源部预计,这种软件将在智能电网中发挥重要作用,在智能电网中,数百万能耗终端设备将实现某种形式的连接。韦弗说,该软件将有助于“理解所有的日志文件和电力控制网络的配置”。
除了系统管理职责之外,这些实用程序还可以与非技术语言一起使用。例如,它们可以用来解析法律文件,韦弗建议。
许多Usenix与会者赞扬了这个想法的潜在实用性。“你想知道为什么以前没人这么做过,”其中一人说。另一位评论说,这类工具对于Git这样的代码库也非常方便。
约押杰克逊报道企业软件和通用技术突发新闻IDG新闻服务.请在Twitter上关注约押@Joab_Jackson.约押的电子邮件地址是Joab_Jackson@idg.com