
Ich versuche, den einfachsten Weg zu finden, eine Datei per SSH hochzuladen und danach innerhalb derselben SSH-Sitzung einen Befehl auf dem Remote-Computer zur Nachbearbeitung auszuführen, sodass ich mich nicht erneut anmelden muss. Der Upload sollte, wenn möglich, einen Fortschrittsindikator anzeigen.
Bisher habe ich mir scp und rsync angesehen und beide sind nicht in der Lage, Hooks auszuführen. (Ich könnte den --rsync-path
Parameter verwenden, um ein Skript auszuführenVorrsync), aber ich möchte eine Nachbearbeitung durchführen. Gibt es eine Möglichkeit, eine SSH-Sitzung zu öffnen, hochzuladen, einen Befehl auszuführen und sie wieder zu schließen?
Antwort1
Nun, Sie könnten das Ganze einfach durch einen ssh
Befehl mit einem cat
am anderen Ende leiten. Hier lade ich ein Shell-Skript hoch, mache es ausführbar und führe es aus:
$ cat sayhi.sh | ssh myserver 'cat > ./remotehi.sh ; chmod +x ./remotehi.sh ; ./remotehi.sh'
hello, world!
Antwort2
Möglicherweise möchten Sie den ControlMaster
Mechanismus in ssh
.