it-swarm.com.de

Führen Sie ein Remote-Python-Skript über SSH aus

Ich möchte ein Python-Skript auf mehreren (15+) Remote-Rechnern mit SSH ausführen. Nach dem Aufrufen des Skripts/Befehls muss ich die ssh-Sitzung trennen und die Prozesse im Hintergrund so lange laufen lassen, wie dies erforderlich ist.

Ich habe Paramiko und PySSH in der Vergangenheit benutzt, also habe ich keine Probleme, sie wieder zu benutzen. Das einzige, was ich wissen muss, ist, wie man eine ssh-Sitzung in Python trennt (da normalerweise ein lokales Skript darauf wartet, dass jeder entfernte Rechner die Verarbeitung abschließt, bevor es weitergeht).

16
nka

Das könnte funktionieren, oder so ähnlich:

ssh [email protected] Nohup python scriptname.py &

Schauen Sie sich grundsätzlich den Befehl Nohup an.

22
David Dean

Auf Linux-Rechnern können Sie das Skript mit 'at' ausführen.

echo "python scriptname.py" ... jetzt

4
chnrxn

Wenn Sie sich wiederholende Aufgaben auf vielen Hosts ausführen möchten, z. B. das Bereitstellen von Software und das Ausführen von Setupskripten, sollten Sie die Verwendung von Fabric in Betracht ziehen.

Fabric ist eine Python-Bibliothek (2.5 oder höher) und ein Befehlszeilentool zur Optimierung der Verwendung von SSH für die Anwendungsbereitstellung oder für Systemverwaltungsaufgaben.

Es bietet eine Reihe grundlegender Vorgänge zum Ausführen von lokalen oder Remote-Shell-Befehlen (normalerweise oder über Sudo) und zum Hochladen/Herunterladen von Dateien sowie zusätzliche Funktionen, z. B. das Auffordern des aktiven Benutzers zur Eingabe oder das Abbrechen der Ausführung.

In der Regel wird ein Python-Modul erstellt, das eine oder mehrere Funktionen enthält, und diese dann über das Befehlszeilentool fab ausgeführt.

1
chnrxn

Sie können in diesem Szenario sogar tmux verwenden.

Nach der tmux Dokumentation:

tmux ist ein Terminal-Multiplexer. Sie können auf einfache Weise zwischen mehreren Programmen in einem Terminal wechseln, diese trennen (sie werden weiterhin im Hintergrund ausgeführt) und sie erneut einem anderen Terminal zuordnen. Und noch viel mehr

In einer tmux-Sitzung können Sie ein Skript ausführen, das Terminal beenden, sich erneut anmelden und die Sitzung bis zum Neustart des Servers wiederholen.

So konfigurieren Sie tmux auf einem Cloud-Server

0
Lahiru