Bash / SSH
Steffen
- programmiertechnik
Hi,
ich würde gern remote auf einem anderen Rechner ein Shell-Script ausführen und dabei aber auch Dateien mitgeben.
Das Script würde ich im Moment wie folgt ausführen.
ssh user@host bash < myscript.sh
Mein Ziel wär es jetzt, nur eine SSH-Verbindung aufzumachen und darüber die Dateien zu transferieren und das Script auszuführen.
ssh user@host 'cat > targetfile' < sourcefile
Wie kann ich das in einer SSH-Verbindung kombinieren?
Grüße
PS
Ich habe die Dateien mal testhalber base64-encoded in das Script eingebettet, was schonmal funktioniert hat. Es war aber nicht ganz zu meiner Zufriedenheit.
Mahlzeit,
grundsätzlich sollte es so klappen:
cat quelldatei | ssh user@remote 'umask 077; cat > zieldatei'
Ob das umask sinnvoll/nötig ist, hängt von deinen Einstellungen ab.
Danke!
grundsätzlich sollte es so klappen:
cat quelldatei | ssh user@remote 'umask 077; cat > zieldatei'
Ob das umask sinnvoll/nötig ist, hängt von deinen Einstellungen ab.
Das ist auch das, was mein zweites Beispiel tut.
ssh user@host 'cat > targetfile' < sourcefile
Ich würde das aber gern noch mit einem Remote-Script wie in meinem 1. Beispiel kombinieren.
Die Ausgangsbasis ist als ein lokales Script (example.sh) und z.B. eine Zip-Datei (example.zip).
Mein bisheriger Weg war folgender.
# datei transferieren
ssh user@host 'cat > example.zip' < example.zip
# script ausfüren
ssh user@host bash < example.sh
Dafür sind aber 2 SSH-Verbindungen nötig, was ich gern vermeiden würde.
Geht das? Irgendwelche Ideen?
Grüße
Hallo,
einen Weg, den ich mir gerade gebastelt habe ist folgender.
ssh user@host /bin/bash <<EOF
echo "`base64 example.zip`" | base64 -d > example.zip
`cat example.sh`
EOF
Hier wird die ZIP-Datei in den Commands im STDIN für die Bash mit übertragen.
Gibt es noch andere Möglichkeiten?
Grüße
Mahlzeit,
Gibt es noch andere Möglichkeiten?
Was spricht gegen SCP oder SFTP?
Gibt es noch andere Möglichkeiten?
Was spricht gegen SCP oder SFTP?
Nichts, spricht dagegen, außer dass ich dann zum Script ausführen wieder eine (zweite) SSH-Verbindung brauche.
Steffen
Mahlzeit,
Nichts, spricht dagegen, außer dass ich dann zum Script ausführen wieder eine (zweite) SSH-Verbindung brauche.
Ich würde das eh anders rum machen. Ich würde das Script anstossen, das sich dann die Datei abholt. Hat den Vorteil, dass das Script die Daten holt, wenn es Zeit hat. Damit schliesst du einen Flaschenhals als Fehlerquelle aus.