Hallo leute,
ich arbeite immoment mit ssh_exec() um ein script auf einem anderen Rootserver auszuführen.
Ansich ja kein problem, Verbindung aufgebaut, befehl ausgeführt, output wird per if vergleich und dann der status ausgegeben ...
funktioniert auch ... doch jetzt tritt ein Problem auf:
ab und zu sowie wenn man zu schnell aktualisiert, scheint die Ausgabe zu spinnen.
Das script (welches per ssh_exec gestartet wird) gibt nach erfolgreicher ausführung per echo
	 aus welches dann in die Variable 
	 geladen wird.
Die Variable
	Die if funktion sieht wie folgt aus:
	
Normalerweise funktioniert der Output richtig ung online wird angezeigt.
Aber wenn halt wie oben beschrieben zu schnell oder einfach per zufall aktualisiert wird, kann es vorkommen, das er trotzdem offline anzeigt.
Nun habe ich gelesen, das es die Möglichkeit gibt den output so zu steuern, das dieser erst nach erfolgreicher Ausführung des comands kommt.
Diese Funktion nutze ich zum ausführen des scripts
	
Oder kann es sein, das die if-abfrage das Problem ist?
Ich danke euch jetzt schonmal für die Antworten
mfg
					ich arbeite immoment mit ssh_exec() um ein script auf einem anderen Rootserver auszuführen.
Ansich ja kein problem, Verbindung aufgebaut, befehl ausgeführt, output wird per if vergleich und dann der status ausgegeben ...
funktioniert auch ... doch jetzt tritt ein Problem auf:
ab und zu sowie wenn man zu schnell aktualisiert, scheint die Ausgabe zu spinnen.
Das script (welches per ssh_exec gestartet wird) gibt nach erfolgreicher ausführung per echo
Code:
	
	online
Code:
	
	$output_script
Die Variable
Code:
	
	$status = "online"
PHP-Code:
	
	
if(strcmp ($output_script, $status) > 0){
echo "online";
} else {
echo "offline";
} 
Aber wenn halt wie oben beschrieben zu schnell oder einfach per zufall aktualisiert wird, kann es vorkommen, das er trotzdem offline anzeigt.
Nun habe ich gelesen, das es die Möglichkeit gibt den output so zu steuern, das dieser erst nach erfolgreicher Ausführung des comands kommt.
Diese Funktion nutze ich zum ausführen des scripts
PHP-Code:
	
	
function exec_over_ssh($hostip,$hostport,$hostuser,$hostsave,$hostcommand){
$connection = ssh2_connect($hostip,$hostport)
ssh2_auth_password($connection,$hostuser,$hostsave)
$stream = ssh2_exec($connection,$hostcommand,FALSE)
stream_set_blocking($stream, true);
$data = "";
while($buffer = fread($stream,4096)) {
      $data .= $buffer;
      return $data;
}
fclose($stream);
} 
Ich danke euch jetzt schonmal für die Antworten

mfg
 
          
 Moderator
 Moderator
Kommentar