Re: Garder une session ssh active

Page principale

Répondre à ce message
Auteur: Olivier Allard-Jacquin
Date:  
À: Guilde Mailing list
Sujet: Re: Garder une session ssh active
    Bonjour,

Le 25/08/2021 à 15:48, Frédéric a écrit :
> Le mercredi 25 août 2021, Christian a écrit :
>
>> Un peu de doc quand même :
>>
>> https://doc.ubuntu-fr.org/screen
>
> Yep, j'ai trouvé.


    J'utilise screen depuis des années, et cela m'a sauvé la vie à de 
nombreuses reprises, notamment lors de la mise à jour de machine à 
distance, avec des plantages de connexion ADSL ...


    J'ai écrit 2 scripts qui m'aident pas mal lorsque j'ai plusieurs 
screens d'ouverts:


- Donne la liste des screens ouverts dans un format un peu plus clair
que celui du "screen -ls"
$ cat screen-list
#!/bin/bash -norc

screen -ls | \
      sed -e '/^[[:space:]]*[0-9]*\./!d' \
          -e 's/^[[:space:]]*[0-9]*\.\([^\t]*\).*(\([^)]*\))/\2: [\1]/g' | \
      sort


=> Resultat
$ screen-list
Detached: [iftop]
Detached: [monitor]
Detached: [x11vnx]

un "screen -r x11" ou "screen -r x" permet alors d'ouvrir le screen en
question


- Parcours tous les screens d'ouverts:
$ cat screen-show
#!/bin/bash -norc

for I in `screen -ls | \
      sed \
          -e '/(/!d' \
          -e 's/^[[:space:]]*\([0-9]*\)\..*/\1/g' | \
      sort -u`; do


screen -rd $I
done

=> "ctrl+a+d" permet de basculer sur le screen suivant.

    Note importante : Il est possible de lancer un screen depuis un autre 
screen. Le résultat est alors très chiant à gérer.  Et c'est là que le 
"screen-list" ou "screen -ls" est intéressant, car il permet de savoir 
si l'on est déjà dans un screen, ou pas (status "Attached") :


$ screen-list
Detached: [iftop]
Attached: [monitor]
Detached: [x11vnx]

    Et à ce moment là, mon "screen-show" permet de parcourir tous les 
screens, afin de les détacher les uns à la suite des autres.


    Note importante 2 : Si tu fais un ssh sur une machine, et que tu fais 
un "crl+a+d" en pensant détacher un screen, alors que tu n'es pas dans 
un screen, cela envoie le "crl+a+d" à ton client ssh, qui va ... te 
fermer la session ! :)


    Cordialement,
                            Olivier
-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
        /   / \  / \   \   Web:  http://olivieraj.free.fr/
       /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!