В ~/.ssh/config
вы можете использовать LocalCommand
директиву , чтобы выполнить локальную команду каждый раз при подключении к удаленному компьютеру через SSH. Но как мне выполнить команду при выходе из SSH-соединения? Кажется, что файлы * .bashrc / .bash_profile * не получены, когда соединение заканчивается или закрывается.
9
Ответы:
В вопросе не указано, хотите ли вы, чтобы это выполнялось на локальной или удаленной машине. Также не указано, какая оболочка присутствует на любой машине, поэтому я предполагаю
bash
для обеих.Если вы хотите выполнить его на удаленной машине, посмотрите
~/.bash_logout
, что выполняется, когда оболочка входа в систему корректно выходит из системы. Отman bash
:Вы можете выполнить тест,
~/.bash_logout
чтобы убедиться, что вышедшая из оболочки оболочка является SSH-сессией, что-то вроде следующего должно работать:Если вы хотите выполнить его на локальном компьютере, создайте оболочку функции
ssh
. Должно работать что-то вроде следующего:Это может быть слишком просто для ваших нужд, но вы поняли идею.
источник
Ты на правильном пути. Если
ssh
сеанс представляет собой оболочку входа в систему (вместо удаленной команды),bash
будет исходным кодом/etc/bash.logout
и~/.bash_logout
при выходе из оболочки.Если вы хотите выполнить удаленную команду, то можете заставить
bash
ее быть оболочкой входа в систему.LocalCommand
Может быть похож на это:От
man 1 bash
источник