Вывод записи PHP CLI из интерактивной сессии SSH - PullRequest
1 голос
/ 30 июня 2011

Я пытался разобраться с записью интерактивного сеанса SSH через скрипт PHP CLI. Все, что я действительно хочу, это что-то вроде команды tee, где весь вывод записывается в строку.

Я перепробовал большинство команд для выполнения внешних процессов, чтобы заставить его работать. Они либо работают нормально, например passthru и pcntl_exec, но не позволяют мне записать вывод в строку или массив, либо не отображают вывод на мой терминал, но все же принимают данные из STDIN.

Мне интересно, есть ли способ проведения интерактивного ssh-сеанса, т.е. он работает нормально, но на самом деле записывает вывод для использования в PHP.

Спасибо

Ответы [ 3 ]

1 голос
/ 06 июля 2011
<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->read('username@username:~$');
$ssh->write("ls -la\n");
echo $ssh->read('username@username:~$');
?>

Вы могли бы сделать что-то подобное.

0 голосов
/ 25 июля 2011

Попробуйте использовать ObserveIT, он включает в себя отличный SSH и Telnet Recorder, который не может быть остановлен powerusers

0 голосов
/ 30 июня 2011

Они либо работают нормально, например passthru и pcntl_exec, но не позволяют мне записать вывод в строку или массив

Ну, вы можете использовать хак, чтобы получить эту строку:

ob_start();
passthru('Your command here');
$result=ob_get_clean();

Это плохо, но если ваш сервер не перегружен - он должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...