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 !!