Entfernten Raspberry steuern

Hallo,

irgenwie kann ich über das Thema nichts finden.

Wie kann ich einen anderen Raspberry neustarten oder eine Datei schreiben?

Hintergrund:
Ich möchte meine Raspi´s gegenseitig überwachen und evtl. neu starten.

Hi!

Einfach per SSH… Stichworte wären „exec“ bzw. „shell_exec“.
Je nachdem, ob dein IPS auf Linux oder Windows läuft, brauchst du keine NetSSH Library für PHP, oder doch :slight_smile:

Beispiele finden sich hier im Forum einige - auf jeden Fall welche bzgl. Updates (apt update && apt upgrade) machen und auch anderen Kram.

Viele Grüße,
Chris

Hallo Chris,

ich weis nicht was du mit „NetSSH Library“ meinst:confused:

Ich habe jetzt SSH ohne Passworteingabe eingerichtet. Wenn ich jetzt am Raspi1 z.B.

ssh pi@192.168.2.159 free

eingebe bekomme ich eine Antwort vom Raspi2.

Aber wenn ich in IPS (Raspi1)

$status = exec('ssh pi@192.168.2.159 free');

ausführe bekomme ich einen Fehler:

Warning:  exec(): Unable to fork [ssh pi@192.168.2.159 free] in /var/lib/symcon/scripts/19120.ips.php on line 4

Woran kann das liegen?

Die NetSSH Geschichte braucht man nur mit IPS unter Windows - du bei deinem Raspberry also nicht :slight_smile:

Fehlermeldung hatte hier auch jemand…
php Script: exec() Unable to fork

Zusatzhinweis: Den Befehl „ssh pi@192.168.2.159 free“ direkt auf dem Raspi 1 ausführen funktioniert - auch als User „root“? Denn Symcon läuft als root! Ggf. fehlt da noch der SSH-Key zur Anmeldung ohne Passwort am Raspi 2 für root…

Grüße,
Chris

Das mit der Auslagerungsdatei hatte ich auch schon gelesen und auf 200 erhöht hat aber nichts gebracht.

Passwort habe ich für Benutzer „Pi“ und für „root“ gesetzt und mit beiden funktioniert es mit Putty ohne Passwort.

Der Fehler bleibt.:(:banghead:

Hmmmm… Schon lustig, dass es bei manchen Usern so Probleme gibt mit Remote-SSH Kram - klärt sich meistens nie auf :smiley:

Mit „shell_exec“ hattest du es auch mal versucht?

Dann vlt. doch mal mit der von mir erwähnten Library testen. Damit klappt es dann meistens bei diesen „Problemfällen“ :slight_smile:
Beispiele gibt es einige im Forum, z.B. hier >> Linux System remote über PHP herunterfahren

Die aktuelle phpseclib findest du hier:
GitHub - phpseclib/phpseclib: PHP Secure Communications Library

Viele Grüße,
Chris

Mit „shell_exec“ hat sich auch der Fehler geändert

<?
$status = shell_exec('ssh root@192.168.2.159 free');
?>

Warning:  shell_exec(): Unable to execute 'ssh root@192.168.2.159 free' in /var/lib/symcon/scripts/19120.ips.php on line 2

da symcon als root läuft lass mal das root@ weg…vllt harkts da bei dem Sonderzeichen

Hast du auch in der sshd_config vom Raspi 2 den Login als root erlaubt? Per Default ist ein Login bei SSH als root nicht erlaubt. Bisher hast du immer „pi“ als User gehabt in deinen Posts.

Nimm einfach die phpseclib…damit wird es vmtl. einfacher sein für dich und funktionieren. Oder du hast den Luxus und genug Zeit - und suchst den Fehler :slight_smile:

Grüße,
Chris

Leider der gleiche Fehler:(

Hast du auch in der sshd_config vom Raspi 2 den Login als root erlaubt? Per Default ist ein Login bei SSH als root nicht erlaubt. Bisher hast du immer „pi“ als User gehabt in deinen Posts.

Ja, es würde sonst von der Konsole am Raspi1 auch nicht gehen.

Nimm einfach die phpseclib…damit wird es vmtl. einfacher sein für dich und funktionieren

Das ist für mich nicht leicht. Ich bräuchte hier eine Anleitung wie das geht.

Müsste das nicht ohne Fehler laufen?

<?
$status = shell_exec('free');
echo $status;
?>

Habe hier den gleichen Fehler.:eek:

Probier mal statt „free“ mit „df -h“ oder „uname -a“

-Chris-

<?
$status = shell_exec('uname -a');
echo $status;
?>
Warning:  shell_exec(): Unable to execute 'uname -a' in /var/lib/symcon/scripts/19120.ips.php on line 2

Ich gebe auf :smiley: Nimm die phpseclib :smiley:

-Chris-

Wie kann ich die phpseclib installieren?

Infos dazu gibt es genug im Forum und den von mir verlinkten Beispielen.
Einfach die aktuelle phpseclib laden, in einen Pfad entpacken, in deinem IPS-Script includen, fertig :slight_smile:

-Chris-