将shell输出格式化为结构化数据?

将shell输出格式化为结构化数据?,shell,formatting,output,Shell,Formatting,Output,是否有任何方法可以将shell命令的输出格式化为结构化数据格式(如JSON或XML),以供其他应用程序处理 用例:网络上的一堆CentOS服务器。我希望通过SSH以编程方式登录到它们,运行命令以获取系统统计信息,并最终运行基本维护命令。我不想自己解析所有文本输出,而是想知道是否有什么东西可以帮助我以结构化格式返回数据?即使只支持一些shell命令,这也是一个良好的开端。听起来像是SNMP的任务。请查看Nagios()以进行远程系统监控。您正在寻找的可能已经存在。可以相当轻松地使用puppet。您

是否有任何方法可以将shell命令的输出格式化为结构化数据格式(如JSON或XML),以供其他应用程序处理


用例:网络上的一堆CentOS服务器。我希望通过SSH以编程方式登录到它们,运行命令以获取系统统计信息,并最终运行基本维护命令。我不想自己解析所有文本输出,而是想知道是否有什么东西可以帮助我以结构化格式返回数据?即使只支持一些shell命令,这也是一个良好的开端。

听起来像是SNMP的任务。

请查看Nagios()以进行远程系统监控。您正在寻找的可能已经存在。

可以相当轻松地使用puppet。您可以将其配置为仅对要检查的内容运行其检查

您的整个傀儡配置可以包括:

exec { "yum install foo":
  unless => "some-check for software",
}
这将运行
yum install foo
,但前提是
某些软件检查失败


也就是说,如果您管理多个服务器,以获得尽可能多的配置并将其内置到puppet清单(或cfengine、bcfg2或类似)中,将有很多好处。

例如,我认为要通过yum安装软件,需要的不仅仅是snmp。snmp监控、shell脚本和完整的配置管理(如puppet/cfengine)之间有什么区别吗?nagios会回答监控部分,但如果我想使用Yum或Apt-Get安装软件呢?真的只是在寻找一个自动化的shell脚本系统或轻量级的配置管理,而不必一路走下去。。。