En ~/.ssh/config
puede usar la LocalCommand
directiva para ejecutar un comando local siempre que se conecte a una máquina remota a través de SSH. Pero ¿cómo ejecutar un comando cuando salgo de una conexión SSH? Parece que los archivos * .bashrc / .bash_profile * no se obtienen cuando la conexión finaliza o se cierra.
9
Respuestas:
No se especifica en la pregunta si desea que esto se ejecute en la máquina local o remota. Tampoco se especifica qué shell está presente en ninguna de las máquinas, por lo que supongo
bash
que ambas.Si desea ejecutarlo en la máquina remota, mire
~/.bash_logout
, que se ejecuta cuando un shell de inicio de sesión se cierra correctamente. Deman bash
:Puede hacer una prueba
~/.bash_logout
para verificar si el shell que está cerrando sesión es una sesión SSH, algo como lo siguiente debería funcionar:Si desea ejecutarlo en la máquina local, cree un contenedor de funciones
ssh
. Algo como lo siguiente debería funcionar:Eso puede ser demasiado simple para sus necesidades, pero se entiende la idea.
fuente
Estás en el camino correcto. Si la
ssh
sesión es un shell de inicio de sesión (en lugar de un comando remoto), sebash
generará/etc/bash.logout
y~/.bash_logout
cuando salga del shell.Si desea ejecutar un comando remoto, puede forzarlo
bash
a ser un shell de inicio de sesión. ElLocalCommand
podría ser similar a esto:Desde
man 1 bash
fuente