Linux — системные вызовы PHP против скриптов Bash

Привет всем,

Я сделал платформу, чтобы показать процессор, оперативную память и данные подкачки. Эти данные вводятся в базу данных для анализа причин.
На данный момент это написано в скрипте bash с использованием файловой системы proc.

Платформа написана на PHP с использованием фреймворка Symfony.
Должен ли я рассмотреть возможность переноса скриптов bash в мой проект PHP и использовать функции system(), exec(), shellExec()
Или я останусь с bash-скриптами?

Я бы знал это с точки зрения безопасности. С источниками для получения дополнительной информации.

На данный момент скрипты bash публикуют данные в URL (который взят из проекта symfony)

Серверы работают под управлением Debian.

4

Решение

Ваше решение является хорошей отправной точкой.

  • Php опасные функции, такие как system(), exec() и другие должны
    быть отключен по соображениям безопасности. Так что не стоит задумываться о переносе ваших bash-скриптов в ваши проекты Symfony.
  • Вы можете соединить ваши bash-скрипты, которые генерируют данные, и ваше php-приложение различными способами:

    1. Через API вызовы (ваш подход). bash script --> api calls --> php application, В этом случае вам нужно сохранять данные в приложении синхронно с их генерацией (иногда вы хотите сгладить пики)
    2. Через лог файлы bash script --> write log files && php application --> read log files, В этом случае ваши bash-скрипты не должны знать о вашем php-приложении. Вам нужно только согласовать формат файлов журнала. В этом случае вы можете обрабатывать ваши данные в приложении асинхронно.
2

Другие решения

Я действительно советую вам использовать Nagios или же Zabbix
Это мощные инструменты для мониторинга, также есть много бесплатных плагинов, готовых к использованию ….

Теперь, чтобы ответить на ваш вопрос:

  • создайте агента (процесс deamon), который будет работать на каждой машине, за которой вы хотите наблюдать
  • Агент получит только имя и параметры виртуальной команды, а не точную команду, которая будет выполнена
  • Связь между виртуальной командой и выполняемым скриптом / командой будет параметризована в файле конфигурации (xml, json …) и может быть развернута из одной точки …

    надеюсь, это поможет

    3
  • С точки зрения безопасности оба подхода можно сделать безопасными и небезопасными. Я бы выбрал ваш язык по другим причинам (например, простота написания того, что вы хотите сделать, переносимость и т. Д.), А затем сосредоточился на том, чтобы сделать скрипт безопасным на этом языке.

    Преимущество Bash в простоте, если все, что вы делаете, — это выполнение команд. Но с PHP будет легче работать, если вам нужна более продвинутая логика и легче работать с базами данных.

    Обратите внимание, что упомянутые вами php-вызовы содержат проблемы с безопасностью, и вы должны опасаться их использования и, как правило, стараться избегать их.

    Вы можете посмотреть на influxdata стек, который звучит так, как будто он уже делает большую часть того, что вы хотите.

    1
    По вопросам рекламы [email protected]