1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Веб интерфейс для скриптов дающие команды по SSH

Тема в разделе "Web Coding", создана пользователем axper, 3 сен 2014.

Модераторы: latteo
  1. axper

    axper Создатель

    Регистр.:
    14 авг 2014
    Сообщения:
    21
    Симпатии:
    6
    Конечно глупый вопрос, но разобраться в нем и ответить на него не могу. Имеется скрипт, который при запуске открывает допустим 10 ssh соединений( подключается к 10 разным машинам, расположенным в разных местах). Далее при нажатии кнопки "Авторизоваться" происходит авторизация на всех машинах. Машины запускают голосовое оповещение (допустим тревогу во время бедствия и т.д.). Есть несколько команд, при выполнении которых включается та или иная звукозапись.
    Так вот как можно это зарелизить с красивым веб интерфейсом, чтобы у пользователя не возникало трудностей с управлением.
    И вообще возможно ли так сделать?
     
  2. Benjamin Coleman

    Benjamin Coleman Создатель

    Регистр.:
    14 апр 2012
    Сообщения:
    41
    Симпатии:
    43
    php -> shell_exec.

    Короче без ssh, просто соединяемся к хосту и выполняем там, всё, что угодно.

    shell_exec выполняет комманды bash. Из php вы управляете машиной на *nix. Вот мануал.
     
    Последнее редактирование модератором: 3 сен 2014
    axper нравится это.
  3. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.546
    Симпатии:
    1.418
    Скрипт на каком языке? Можешь сюда выложить, интересно посмотреть. Да и как тебе ответ давать для доработки уже готовой системы, если ничего о системе неизвестно?
     
    Последнее редактирование: 3 сен 2014
  4. mrakobes0001

    mrakobes0001 Создатель

    Регистр.:
    6 фев 2013
    Сообщения:
    32
    Симпатии:
    17
    можно примерно так:
    накалякать небольшой шел на основе "tail -n0 -f путь_к_логу | while read line; do пишем строку в базу"
    и теперт как только будет в логе появляться запись в логе - сразу фиксируем её в удаленной базе (чтоб логировать серверы все в одном месте)
    запускаем шел на каждом серевере - теперь у нас есть онлайн-лог всегда

    вторым этапом пиешем обработчик на выборку записей и проверку на какуюто катастрофу (например регулярками),
    теперь можно создать страницу - где аяксом будем дергать обработчик, и если чтото есть о чем нужно сигнализировать
    тем же яваскритом - проигруем звук
    var audio = $("#beep")[0];
    audio.play();
     
  5. mrakobes0001

    mrakobes0001 Создатель

    Регистр.:
    6 фев 2013
    Сообщения:
    32
    Симпатии:
    17
    спустя день на глаза попалось вообьще блестящее решение
    даже конектится не нужно никуда

    привожу цытату из сайта, ссылка ниже
    перед всем нужно сделать настройку безпарольного входа по ссх на локал с сервера (чтобы сервер мог соедениться с локальной машиной)

    "Один из интересных способов применения беспарольного входа - это «удаленное оповещение». Допустим, что на удаленном сервере работает очень важный процесс, например веб-сервер Apache. Мы хотим получить уведомление, когда система начинает испытывать нехватку ресурсов (жесткий диск переполнен или нагрузка на систему слишком высока). В этом случае мы можем отправить уведомление по электронной почте. Но помимо этого, мы можем выполнить удаленную команду, которая воспроизведет звуковой сигнал в нашей локальной системе. Для этого можно воспользоваться, например, такой командой:

    ssh user1@local_server 'play /usr/share/sounds/gaim/arrive.wav'

    Эта команда, выполненная скриптом на удаленном сервере, произведет беспарольный вход пользователем user1 на local_server (на котором мы обычно работаем) и воспроизведет файл с помощью команды play (которая обычна доступна в Linux)."

    http://www.nestor.minsk.by/sr/2007/11/sr71104.html
     
    latteo нравится это.