Dans, ~/.ssh/config
vous pouvez utiliser la LocalCommand
directive pour exécuter une commande locale chaque fois que vous vous connectez à une machine distante via SSH. Mais comment exécuter une commande lorsque je quitte une connexion SSH? Il semble que les fichiers * .bashrc / .bash_profile * ne proviennent pas lorsque la connexion se termine ou est fermée.
9
Réponses:
Il n'est pas spécifié dans la question si vous souhaitez que cela soit exécuté sur la machine locale ou distante. Il n'est également pas spécifié quel shell est présent sur l'une ou l'autre machine, donc je suppose
bash
pour les deux.Si vous souhaitez l'exécuter sur la machine distante, regardez
~/.bash_logout
ce qui est exécuté lorsqu'un shell de connexion se déconnecte correctement. Deman bash
:Vous pouvez effectuer un test
~/.bash_logout
pour vérifier si le shell en cours de déconnexion est une session SSH, quelque chose comme ce qui suit devrait fonctionner:Si vous souhaitez l'exécuter sur la machine locale, créez un wrapper de fonction autour
ssh
. Quelque chose comme ce qui suit devrait fonctionner:Cela peut être trop simple pour vos besoins, mais vous avez l'idée.
la source
Tu es sur la bonne piste. Si la
ssh
session est un shell de connexion (au lieu d'une commande à distance),bash
sera source/etc/bash.logout
et~/.bash_logout
lorsque vous quitterez le shell.Si vous souhaitez exécuter une commande à distance, vous pouvez forcer
bash
à être un shell de connexion. LeLocalCommand
pourrait être similaire à ceci:De
man 1 bash
la source