451 Stimmen

Was ist der sauberste Weg, um ssh und führen Sie mehrere Befehle in Bash?

Ich habe bereits einen SSH-Agenten eingerichtet, und ich kann Befehle auf einem externen Server in einem Bash-Skript ausführen, das Dinge wie:

ssh blah_server "ls; pwd;"

Was ich wirklich gerne tun würde, ist, eine Menge langer Befehle auf einem externen Server auszuführen. Alle diese Befehle in Anführungszeichen einzuschließen, wäre ziemlich hässlich, und ich würde es wirklich lieber vermeiden, mehrmals ssh zu verwenden, nur um dies zu vermeiden.

Gibt es also eine Möglichkeit, dies in einem Durchgang in Klammern oder so zu tun? Ich suche nach etwas in der Art von:

ssh blah_server (
   ls some_folder;
   ./someaction.sh;
   pwd;
)

Im Grunde bin ich mit jeder Lösung zufrieden, solange sie sauber ist.

bearbeiten

Um zu verdeutlichen, spreche ich davon, dass dies ein Teil eines größeren Bash-Skripts ist. Andere Leute könnten mit dem Skript in der Folgezeit zu tun haben, daher möchte ich es sauber halten. Ich möchte kein Bash-Skript mit einer Zeile haben, die aussieht wie:

ssh blah_server "ls some_folder; ./someaction.sh 'some params'; pwd; ./some_other_action 'other params';"

weil sie extrem hässlich und schwer zu lesen ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X