Wie kann ich nach dem Beenden einer ssh
Verbindung automatisch einen Befehl auf dem lokalen Terminal ausführen ? Gibt es einen Hook oder ein Ereignis, das dafür behandelt werden könnte?
Nutzen Sie eine alias
oder eine bessere Funktion.
Beispielsweise:
ssh () { command ssh "$@"; echo foobar; }
Jetzt können Sie ausführen:
ssh mysite
Nach dem Verlassen der ssh
Sitzung echo foobar
wird ausgeführt.
Ändern Sie echo foobar
mit dem tatsächlichen Befehl, den Sie ausführen müssen, und natürlich können Sie mehrere Befehle anheften, wenn Sie möchten.
Um die Funktionsdefinition dauerhaft zu machen, fügen Sie sie in Ihre ein ~/.bashrc
.
Beachten Sie auch, dass es möglicherweise nicht immer erwünscht ist, die Funktion so zu benennen, als ob Sie ssh
die externe Funktion explizit verwenden möchten ssh
. In diesem Fall können Sie eine der folgenden Optionen verwenden, um die ssh
Funktion zum Abrufen einer externen ssh
Binärdatei zu überspringen :
command ssh mysite
oder benennen Sie die Funktion in etwas anderes um, z sshfunc
.
sshfunc () { ssh "$@"; echo foobar; }
ssh user@host 'cd /somewhere/ && tar cf - | gzip -c -' > local_backup_of_somewhere.tgz
:: Dies wird falsch sein, da es am Ende "foobar" enthält ...)