Я работаю над отображением вывода ssh в своем веб-браузере. У меня есть сценарий оболочки, который я создал, который выполняет tail -f/var/log/syslog с некоторыми аргументами grep.PHP Чтение linux tail -f с SSH2
Теперь я хочу вызвать этот сценарий оболочки и отобразить данные, возвращенные в реальном времени. Что у меня есть запрос Ajax, который вызывает функцию PHP
public function siptrace($num) {
if(is_numeric($num)) {
if($ssh = ssh2_connect('127.0.0.1', 3972)) {
if(ssh2_auth_password($ssh, 'user', 'password')) {
$stream = ssh2_exec($ssh, 'script ');
stream_set_blocking($stream, true);
$data = '';
sleep(1);
while($line = fgets($stream)) {
flush();
echo $line . "<br>";
}
}
}
}
}
Я проверил соединение, выполнив простые команды, такие как Ls. Но теперь, когда я пытаюсь grep данные в реальном времени, он ничего не возвращает. Я могу увидеть загрузку и загрузку ajax-вызовов, что она должна делать из-за структуры while и shell?
Ajax
$(document).ready(function() {
$('#sub').click(function() {
$.ajax({ url: 'load.php?trace='+$('#num').val(), success:function(data){
} });
});
});
ли кто-нибудь заметил, что-то случилось с моим кодом?