2013-05-06 4 views
10

Ich habe Bibliotheken wie Fabric (Python) verwendet, um verschiedene Aufgaben auf einem Remote-Server durchzuführen. Wenn ich Aufgaben über diese Bibliothek ausfühle, erhalte ich die Ausgabe vom Remote-Server, wenn die Aktionen ausgeführt werden. Zum Beispiel, wenn die Aufgabe eine git pull auf dem Server ausführt, bekomme ich die zeilenweise Ausgabe von, wie es passiert.SSH-Ausgabe "wie es ist" per PHP erhalten?

Allerdings, wenn ich mir die verschiedenen PHP SSH-Bibliotheken und die SSH2-Erweiterung anschaue. Es scheint, dass es nur eine Möglichkeit gibt, die gesamte Ausgabe von dem Befehl zu erhalten, nachdem es bereits geschehen ist, in einer langen Zeichenfolge. Ich möchte die Ausgabe vom Remote-Server zurückgeben, während die Aufgabe ausgeführt wird. Ist das möglich? In Pseudo-Code, ist diese Art von dem, was ich suche:

Server::run('git pull origin master', function($output) 
{ 
    echo $output.PHP_EOL; 
}); 

Antwort

10

diese Arbeit erhielt Echo. Sie können den von ssh2_exec zurückgegebenen Stream einfach unter Verwendung von fgets in einer Schleife lesen.

+0

Lassen Sie uns diese Antwort als die genehmigte markieren. – Tuanitim

+0

Aktualisieren Sie Ihre Frage auch, wenn Sie können. – Banago

Verwandte Themen