Benötigen Sie Hilfe beim Ausführen und Löschen eines Remote-Bash-Skripts über ein lokales Bash-Skript

Benötigen Sie Hilfe beim Ausführen und Löschen eines Remote-Bash-Skripts über ein lokales Bash-Skript

Ich versuche, ein Bash-Skript zu erstellen, das ein Skript per SCP an einen Remote-Server sendet, per SSH (unter Verwendung eines bereits installierten SSH-Schlüssels) eine Verbindung zum Remote-Server herstellt, das hochgeladene Skript ausführt und das Remote-Skript anschließend löscht, wenn es fertig ist. Mir ist nicht klar, wie man eine SSH-Sitzung innerhalb eines Bash-Skripts ausführt. Hier sind die Befehle, die ich verwende, um dies von der Befehlszeile aus zu tun:

scp my_script.sh [email protected]:/usr/home/user/
ssh [email protected]
>sh my_script.sh
>rm myscript.sh
>exit

Wie skripte ich den SSH-Teil meiner Befehlsliste? Danke!

Antwort1

ssh führt als Argumente übergebene Befehle auf dem Remote-Rechner aus. Folgendes sollte das gewünschte Ergebnis liefern:

ssh [email protected] 'sh my_script.sh; rm my_script.sh'

Antwort2

Sie können das Kopieren und Löschen von Dateien auch überspringen und so etwas tun.

cat my_script.sh | ssh user@host bash

Antwort3

Sie könnten auch die Verwendung von Fabric untersuchen, einer Python-Bibliothek für die Systemadministration über SSH:

http://docs.fabfile.org/0.9.1/

Der Einstieg ist ganz einfach, aber die Lösung ist sehr leistungsstark, insbesondere über mehrere Server hinweg.

verwandte Informationen