2 votes

Reconnaître la fermeture d'une session ssh

J'essayais de changer le profil de mon terminal lorsque je me connectais avec ssh à un ordinateur distant. Cela fonctionne bien avec un certain nombre de profils locaux et de xdotool key Alt+t p Down Return .

La question est maintenant de savoir comment reconnaître si une session ssh est fermée dans le terminal. Par exemple, lorsque vous appuyez sur C-d, le terminal affiche logout et connexion fermée. Mais y a-t-il un moyen de voir si je suis de retour dans mon ancienne session. Je ne sais pas s'il y a un fichier qui est rechargé lors de la fermeture de la session ssh. Pour autant que je sache, le fichier .bashrc n'est pas ré-exécuté, mais il y a peut-être autre chose.

user@remote-pc:~$ logout
Connection to remote-pc closed.
DO_SOMETHING_HERE
user@local-pc:~$

Comme le profil doit être modifié sur la machine locale, il est nécessaire d'exécuter la commande localement. Elle ne peut donc pas être exécutée avec .bash_logout puisqu'elle sera exécutée sur la machine distante.

2voto

wool.in.silver Points 241

Il a résolu le problème avec une fonction autour du ssh normal. Il change maintenant la couleur en fonction du serveur et la change à nouveau lorsqu'il retourne à l'hôte local.

alias blue='xdotool key --delay 50 Alt+t p Return'
alias dark='xdotool key --delay 50 Alt+t p Down Return'
alias green='xdotool key --delay 50 Alt+t p Down Down Return'
alias red='xdotool key --delay 50 Alt+t p Down Down Down Return'

cssh(){
  if [[ $1 == *"remote1"* ]]
  then
    green
  elif [[ $1 == *"remote2"* ]]
  then
    red
  else
    blue
  fi
  ssh $@
  sleep 0.5
  dark
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X