PHP-скрипт для чтения XML-данных на удаленном Unix-сервере - PullRequest
0 голосов
/ 02 января 2012

У меня возникла ситуация, когда у меня было много системных конфигураций / выходов из системы, и я должен был создать быстрый обзор системы, полезной для устранения неполадок.

Сначала я хотел бы создать своего рода веб-интерфейс(скорее всего, сайт php), который дает мне приблизительный снимок конфигурации системы, используя доступную информацию из журналов поддержки.Журналы поддержки находятся на зеркальных серверах (назовите его сервером журналов), а серверу, на котором я буду размещать сайт (назовем его веб-сервером), для доступа к ним потребуется ssh / sftp.

Мой грубый набросок:

  1. Сценарий php на веб-сервере установит какое-либо соединение с сервером журналов и перейдет в расположение журналов поддержки.
  2. Затем он запустит сценарий perl в журналах.сервер, который будет собирать соответствующие материалы из всех файлов config / log в некоторый полезный xml (их будет несколько).
  3. Иногда эти xml-файлы передаются на веб-сервер, и php использует его для созданияHTML из этого.

Я очень новичок в php и хотел бы знать, возможно ли это или есть какой-то другой / лучший способ сделать это?Было бы замечательно, если бы кто-то мог предоставить более подробную информацию о том же самом.

Заранее спасибо.

РЕДАКТИРОВАТЬ: Извините, я упустил упомянуть, что журналы не те, которые создаются на живой машине,Я занимаюсь вопросами поддержки устройств хранения NAS, и будет много журналов поддержки от разных конечных пользователей, на которые хотели бы взглянуть ребята из моей команды.Безопасность не является большой проблемой здесь (я в порядке использования простой текстовой аутентификации для регистрации серверов), поскольку к этим серверам можно получить доступ только через VPN компании.

Ответы [ 2 ]

0 голосов
/ 02 января 2012

Да, PHP может обрабатывать XML. Простой способ - использовать SimpleXML: http://php.net/manual/en/book.simplexml.php

0 голосов
/ 02 января 2012

Хотя вы можете сделать это, используя что-то вроде ожидайте (я думаю, что есть что-то и для PHP тоже ...), я бы рекомендовал сделать это в два отдельных шага:

  1. Скрипт, запущенный через Cron, извлекает данные с серверов и сохраняет их локально
  2. Сценарий PHP читает только из локальных хранимых данных, чтобы генерировать отчеты.

Таким образом,у вас есть следующие преимущества:

  • Вам не нужно беспокоиться о том, как заставить ваш php-скрипт подключаться через ssh к серверам
  • Вы избегаете рисков безопасности, связанных с разрешением пользователю вашего веб-серверавойти на другие серверы (высокий риск в случае взлома вашего скрипта)
  • В случае медленного / отсутствующего подключения к серверам, длительного получения журналов и т. д. ваш php-скрипт все равно сможет быстро показатьданные - возможно, вместе с некоторым сообщением об ошибке, объясняющим, что пошло не так во время последнего обновления
  • В любом случае, ваш php-скрипт завершит работу намного быстрее, так как ему нужно только получитьve данные из локального хранилища.

Обновление: ssh клиент через php

Хорошо, из вашего последнего комментария я понимаю, что вам нужен больше «интерфейсный браузер» для отображенияфайлы, чем инструмент генерации отчетов или аналогичный;в этом случае вы можете использовать Expect (как я уже говорил ранее) для подключения к удаленным машинам.

Существует расширение PECL для PHP, обеспечивающее ожидаемую функциональность.Взгляните на PHP Expect manual и, в частности, примеры использования , показывающие, как использовать его для создания SSH-соединений.

Альтернативный способ: получение файлов изОбщий ресурс NFS / SAMBA

Другим способом, избегающим использования SSH, является просмотр файлов на удаленных машинах через локально установленный общий ресурс.Это особенно полезно в случае, если интересные файлы уже переданы в NAS, хотя я бы не рекомендовал это, если это означало бы совместное использование всей корневой файловой системы или ее огромных частей.

...