php脚本读取远程unix服务器上的xml数据

时间:2012-01-02 17:58:52

标签: php xml ssh remote-server

我遇到的情况是我有很多系统配置/日志关闭,我必须快速查看系统有用的故障排除。

首先,我想构建一种Web界面(很可能是一个php站点),它使用支持日志中的可用信息为我提供系统配置的粗略快照。支持日志驻留在镜像服务器上(称为日志服务器)&我将托管该网站的服务器(称之为Web服务器)必须使用ssh / sftp来访问它们。

我粗略的草图:

  1. Web服务器上的php脚本将与日志服务器进行某种连接。转到支持日志位置。
  2. 然后它将在日志服务器上触发一个perl脚本,它会将所有配置/日志文件中的相关内容收集到一些有用的xml中(其中有多个)。
  3. 这些xml文件转移到Web服务器& php将使用它来创建它的html。
  4. 我对php&想知道这是否可行,或者是否还有其他替代/更好的方法? 如果有人可以为此提供更多详细信息,那就太好了。

    提前致谢。

    编辑: 对不起我错过了提到日志不是在现场机器上生成的日志,我正在处理NAS存储设备的维护活动。将有来自不同终端客户的大量支持日志,我的团队的人员希望看看。 安全性不是一个大问题(我可以使用纯文本身份验证来记录服务器)因为这些服务器只能通过公司的VPN访问。

2 个答案:

答案 0 :(得分:0)

虽然你可以使用像expect这样的东西(我觉得PHP也有东西......),但我建议你分两个步骤来做这件事:

  1. 通过Cron运行的脚本从服务器检索数据并将其存储在本地
  2. PHP脚本仅从本地存储数据中读取,以生成报告。
  3. 通过这种方式,您可以获得以下好处:

    • 您不必担心如何通过ssh将php脚本连接到服务器
    • 您可以避免与允许您的网络服务器用户登录其他服务器相关的安全风险(如果您的脚本被黑客攻击,风险很高)
    • 如果服务器连接缓慢/缺失,检索日志的时间很长等等,您的PHP脚本仍然可以快速显示数据 - 可能还有一些错误消息,说明最新更新期间出现的问题< / LI>
    • 在任何情况下,您的PHP脚本都会更快地终止,因为它只需要从本地存储中检索数据。

    更新:ssh客户端通过php

    好的,从您的最新评论中我了解到,您需要的是一个显示文件的“前端浏览器”,而不是报告生成工具或类似工具;在这种情况下,您可以使用Expect(如前所述)以连接到远程计算机。

    PHP提供PECL扩展,提供expect功能。请查看PHP Expect manual,特别是usage examples,了解如何使用它来建立SSH连接。

    替代方式:从NFS / SAMBA共享文件

    另一种避免使用SSH的方法是通过本地安装的共​​享浏览远程计算机上的文件。 这在有趣的文件已经由NAS共享的情况下特别有用,而如果这意味着共享整个根文件系统或其中的大部分,我不建议这样做。

答案 1 :(得分:0)

是的,PHP可以处理XML。一种简单的方法是使用SimpleXML:http://php.net/manual/en/book.simplexml.php