IPS_Execute Output

Hallo zusammen,

nachdem ich nun stundenlang selber gesucht und nichts gefunden habe brauche ich eure Hilfe.
Da mir auf dem Raspberry die Homebridge ab und zu abschmiert will ich diese mit IPS (auf Windows Rechner) überwachen und gegebenenfalls neustarten (watchdog).

Um zu checken ob die Homebridge auf dem Pi läuft kann ich den Befehl

sudo /etc/init.d/homebridge status

nutzen und bekomme als Antwort (wenn sie läuft) „Homebridge is running PID xxxxx“.

Um diesen Befehl vom Windows Rechner auszuführen funktioniert in der Aufgabeaufforderung

"C:\Program Files (x86)\putty\plink.exe" -ssh  pi@192.168.6.28 -pw raspberry sudo /etc/init.d/homebridge status

und ich bekomme wieder die Rückmeldung „Homebridge is running PID xxxxx“.

Die Ausführung von IPS aus funktioniert dann mit dem Script

<?

IPS_Execute("C:\Program Files (x86)\putty\plink.exe", "-ssh  pi@192.168.6.28 -pw raspberry sudo /etc/init.d/homebridge status", false, true);

?>

Nun mein Problem: Wie komme ich an die Antwort „Homebridge is running PID xxxxx“ (um diese zb. in eine Variable zu schreiben)? Leider bekomme ich schon mit

<?


echo IPS_Execute("C:\Program Files (x86)\putty\plink.exe", "-ssh  pi@192.168.6.28 -pw raspberry sudo /etc/init.d/homebridge status", false, true);


?>

keine Rückmeldung :confused:

Ist für euch Profis bestimmt nur ein Klacks, ich verzweifle daran :banghead:
(Das mein Vorhaben auch mit einem Script auf dem Pi (ohne ips) geht weiß ich, will aber das ips es macht)

Danke und Gruß
Adam

Ich glaube die Antwort auf die Statusanfrage kommt auch, wenn das System abstürzt. Hast du das mal geprüft?
Ansonsten hätte ich den Vorschlag, das hängenbleiben daran zu erkennen, dass ein Wert sich lange nicht geändert hat. Das könnte z.B. Ein Tempwert sein, oder ein Blinkcode einer homebridge variablen.
Nur so als Anregung.

VG
Tom

Gesendet von iPhone mit Tapatalk

ich habe mir bei der Installation der Homebridge ein Script aus dem Netz kopiert.

sudo /etc/init.d/homebridge status

liest den Status aus. Falls der Prozess läuft kommt „Homebridge is running PID xxxxx“. Falls der Prozess nicht mehr läuft kommt „Homebridge is not running“.

Und genau um diese Rückmeldung geht es mir, wie kann ich diese in IPS auswerten/speichern? Das gilt dann ja für alle Antworten von Linuxbefehlen.

Danke und Gruß
Adam

Mit IPS_Execute wird das glaube ich nie etwas. Der Befehl gibt laut Doku immer leerstring zurück.
Also nimm doch SSH
PHP: SSH2 - Manual
Und führe den Befehl darüber aus, da kannst du auch die Ausgaben der Konsole lesen.
Michael

Danke, wenn das so ist versuche ich mich da mal durchzubeißen…

Sooo, kann Erfolg vermelden, danke für den Hinweis.

Falls es jemanden interessiert „mein“ Skript:

<?
//SSH Login : Beginn
include('Net/SSH2.php');

// IP vom Raspberry
$ssh = new Net_SSH2('IP des Raspberrys'); 

//Anmeldeuser und Passwort für Raspberry nach UFT8 konvertieren
//nur mit UTF8 Einstellung klappt auch ein putty login
//ohne diese Konvertierung erscheint immer "Login Failed" auch hier per ssh->login
$username = utf8_encode( 'Benutzer kommt hier rein' );
$password = utf8_encode( 'Passwort des Benutzers' );

    if (!$ssh->login($username, $password)) // Hier der echte Login
    {
        exit('Login Failed');
    }
//SSH Login: Ende

//Befehl der auf dem Raspberry ausgeführt wird und die Antwort in $status schreiben

$status = $ssh->exec("sudo /etc/init.d/homebridge status");

//Der rückgabewert wird in die stringvarible  geschrieben
SetValue(35685, $status);

?>

Die benötigten Dateien für den Script Ordner und die Lösung war Gott sei Dank hier:
SSH per PHP z.B. um AppleScript auszuführen mit Siri Beispiel :slight_smile:?highlight=ssh2)

Adam

Hi!

Wenn ihr IPS auf einem Linux als Basis betreibt (z.B. Raspberry), dann geht das auch einfacher und ohne externe Library zu includen…

Erstmal mit SSH auf den IPS-Server und dort einen Passwort-freien SSH-Zugang zum anderen System einrichten (z.B. mit SSH-Keyfile // SSH Key Login – Thomas-Krenn-Wiki // Linux – SSH Zugriff ohne Passwort per ssh-key konfigurieren - Fene-Blog).

Wenn ihr vom IPS-Server über SSH diesen Befehl abschickt: ssh user@192.168.1.12 „df -h“
…und euch wird was angezeigt, dann könnt ihr in IPS weitermachen :slight_smile:

Jetzt kann man direkt in IPS Befehle per Skript auf anderen Linux-Systemen absetzen :slight_smile:

Beispiel zum Anzeigen der Speicherplatz-Belegung vom Linux-Server mit der IP „192.168.1.12“ über Benutzer „user“:

<?
$output[] = shell_exec('ssh user@192.168.1.12 "df -h"');
print_r($output);
?>

Grüße,
Chris