Em ~/.ssh/config
você pode usar a LocalCommand
diretiva para executar um comando local sempre que você se conectar a uma máquina remota via SSH. Mas como executo um comando quando saio de uma conexão SSH? Parece que os arquivos * .bashrc / .bash_profile * não são originados quando a conexão termina ou é fechada.
9
Respostas:
Não está especificado na pergunta se você deseja que isso seja executado na máquina local ou remota. Também não está especificado qual shell está presente em nenhuma das máquinas, portanto, estou assumindo as
bash
duas.Se você deseja executá-lo na máquina remota, observe
~/.bash_logout
, que é executado quando um shell de logon efetua logout normalmente. Deman bash
:Você pode fazer um teste
~/.bash_logout
para verificar se o shell que está sendo desconectado é uma sessão SSH, algo como o seguinte deve funcionar:Se você deseja executá-lo na máquina local, crie um wrapper de função
ssh
. Algo como o seguinte deve funcionar:Isso pode ser muito simples para suas necessidades, mas você entendeu.
fonte
Você está no caminho certo. Se a
ssh
sessão for um shell de login (em vez de um comando remoto),bash
a fonte será/etc/bash.logout
e~/.bash_logout
quando você sair do shell.Se você deseja executar um comando remoto, pode forçar
bash
a ser um shell de logon. OLocalCommand
poderia ser semelhante a este:De
man 1 bash
fonte