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

在远程unix服务器上读取xml数据的php脚本,php,xml,ssh,remote-server,Php,Xml,Ssh,Remote Server,我遇到了这样一种情况:我有很多系统配置/注销,我必须对系统进行快速检查,以便进行故障排除 首先,我想构建一种web界面(很可能是一个php站点),它使用支持日志中的可用信息提供系统配置的粗略快照。支持日志驻留在镜像服务器(称为日志服务器)上&我将在其上托管站点的服务器(称为web服务器)必须使用ssh/sftp才能访问它们 我的草图: web服务器上的php脚本将与日志服务器建立某种连接&转到支持日志位置 然后,它将在logs服务器上触发一个perl脚本,该脚本将从所有配置/日志文件中收集相关内

我遇到了这样一种情况:我有很多系统配置/注销,我必须对系统进行快速检查,以便进行故障排除

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

我的草图:

  • web服务器上的php脚本将与日志服务器建立某种连接&转到支持日志位置
  • 然后,它将在logs服务器上触发一个perl脚本,该脚本将从所有配置/日志文件中收集相关内容,并将其转换为一些有用的xml(其中可能有多个)
  • 通过某种方式将这些xml文件传输到web服务器&php将使用它来创建html
  • 我对php非常陌生&想知道这是否可行,或者是否有其他替代/更好的方法? 如果有人能提供更多的细节,那就太好了

    提前谢谢

    编辑: 很抱歉,我没有提到这些日志不是在live machine上生成的,我正在处理NAS存储设备的维护活动&将有大量来自不同最终客户的支持日志,我的团队成员希望查看这些日志。
    安全性在这里不是一个大问题(我同意使用纯文本身份验证来记录服务器),因为这些服务器只能通过公司的VPN访问。

    虽然您可以使用类似的方法来实现这一点(我认为PHP也有一些功能),但我建议分两个单独的步骤来实现:

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

    • 您不必担心如何使php脚本通过ssh连接到服务器
    • 您可以避免与允许您的Web服务器用户登录到其他服务器相关的安全风险(如果您的脚本被黑客攻击,则风险很高)
    • 如果与服务器的连接速度慢/缺少连接,检索日志的时间长等等,您的php脚本仍然能够快速显示数据——可能还会显示一些错误消息,解释在最新更新过程中出现的错误
    • 在任何情况下,php脚本都会更快地终止,因为它只需要从本地存储检索数据
    更新:通过php的ssh客户端 好的,从你最近的评论中我了解到,你需要的更多的是一个“前端浏览器”来显示文件,而不是一个报告生成工具或类似工具;在这种情况下,您可以使用(如我前面所述)来连接到远程机器

    PHP有一个PECL扩展,提供expect功能。查看,特别是,展示如何使用它进行SSH连接

    替代方法:从NFS/SAMBA共享获取文件 另一种避免使用SSH的方法是通过本地装载的共享浏览远程机器上的文件。
    如果NAS已经共享了感兴趣的文件,那么这尤其有用,如果这意味着共享整个根文件系统或其中的大部分,我不建议这样做。

    是的,PHP可以处理XML。一种简单的方法是使用SimpleXML:

    不需要PHP。只需让perl脚本执行xml生成->html转换,然后按计划将html输出到Web服务器。感谢Marc的回复。正如我提到的,收集有用的数据只是简化故障排除过程的第一步,我希望前端UI在以后更具交互性,所以我有点倾向于PHP。此外,我不能在日志服务器上托管该站点。我对cron活动不感兴趣,很抱歉,我在之前的帖子中没有明确说明。cron有什么问题?在任何情况下,如果我正确理解了这个问题,那么您需要分析“远程服务器上的一些文件”以显示结果,那么我将分两步执行这两件事:1。检索数据并在本地存储,2。分析数据并存储结果。显示处理结果中的数据。每次加载页面时执行这三项操作将花费很长时间生成页面/在加载过程中出现超时的高风险。这就是为什么我建议使用一个单独的“数据收集器”脚本,定期运行。谢谢您的时间,redShadow。我在这里不需要cron,这是一个完全不同的问题,因为我们必须处理大量日志(由不同NAS系统生成的)目录,其中包含数百个文件(压缩大小约为10-100MB),所以我对在本地复制所有这些内容不感兴趣,而是只生成/传输数据(如xml)通过在日志服务器上使用脚本进行显示非常有用。我关心的是,从远程日志服务器到web服务器的文件传输有多容易?好的,现在我明白你在找什么了。请参阅答案更新