Bash-Script remote ausführen – Teil 2

(siehe auch: Bash-Script remote ausführen – Teil 1)

Ich habe noch ein bisschen experimentiert und war mit der aktuellen Lösung noch nicht ganz zufrieden. Wenn ich Scripte remote ausführe, dann müssen häufig auf Daten übertragen werden.

Das geht klassisch in 2 Schritten mit 2 SSH-Verbindungen.

# datei transferieren
ssh user@host ‘cat > example.zip’ < example.zip
# script ausfüren
ssh user@host bash < example.sh

Mein Wunsch war hier immer, dass über eine SSH-Verbindung zu lösen.

In der folgenden Lösung werden die Daten direkt base64-encoded in das Script eingefügt. Hierbei sehe ich allerdings den Schritt des base64-encoded noch als Overhead an.

ssh user@host /bin/bash <<EOF
# datei transferieren
echo "`base64 example.zip`" | base64 -d > example.zip
# script ausführen
`cat example.sh`
EOF

Im nächsten Beispiel werden einfach alle Daten zusammengeängt und dann remote wieder geteilt.

size=$(stat -c %s example.zip)
cat example.zip example.sh | ssh user@host “head -c $size > example.zip; /bin/bash”

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s