Screen + ssh que du bonheur
Par km, vendredi 28 novembre 2008 à 12:50 :: informatique ::#25
Accéder à tout instant à son serveur sans perdre son travail en cours.
Remarque : Ce billet date un peu, il a été rédigé en mars. Je profite d’une nouvelle astuce pour tout diffuser.
Principe
Pour administrer un serveur à distance, l’utilisation d’un terminal et ligne de commande est souvent utile. Mais on n’est jamais à l’abri d’une coupure réseau ou d’une urgence chez le dentiste. Dans ces cas, en fermant sa console on perd les traitement en cours.
Screen permet de garder en mémoire les actions utilisateurs et de rendre la main exactement au même état qu’à la déconnexion. Grâce à cet outil on peut continuer ses interventions comme si de rien n’etait.
Installer et se connecter
Pour commencer, il suffit d’installer Screen (par exemple : apt-get install screen) et de lancer la commande screen.
A cet instant, on initialise une session vierge.
A la prochaine connexion pour reprendre la main, la commande sera screen -r . -r pour ré attacher à la console serveur la session screen.
Si on souhaite détacher la session, on a la combinaison clavier ctrl a +d, lors d’une déconnexion réseau, on aura le même comportement screen sera détaché et non fermé.
En d’autres mots, screen reste toujours actif mais n’est plus associé à une sortie d’affichage.
Gérer des fenêtres de console
Un des autres intérêts de screen, c’est de pouvoir gérer plusieurs consoles. Dans l’idée des crtl + Fx sur son poste de travail.
Sur une même session, on peut donc faire plusieurs traitements en parallèle comme lancer une commander et visualiser l’aide associée.
ctrl a + c : créer une nouvelle fenêtre
ctrl a + k : pour fermer une fenêtre
ctrl a + " : pour lister les fenêtres
Se déplacer entre consoles
Une fois qu’on sait créer autant de consoles que voulues, il faut pouvoir passer de l’une à l’autre.
ctrl a + p : fenêtre précédente
ctrl a + n : fenêtre suivante
ctrl a + [x] : aller à la fenêtre de numéro [x]
Se déplacer dans une console
Edit : 03/12/2008, merci à nouveau à Florian
Contrairement à un terminal normal, on ne peut se deplacer verticalement dans la console (scroller). Heureusement screen propose un raccourcis clavier pour se mettre en mode copie et ainsi parcourir la fenetre active.
ctrl a + echap : se mettre en mode copie
echap : annuler le mode copie
Découper l’écran
Lorsqu’on veut voir à la fois un fichier de log et lancer la commande associée, il serait pratique de découper l’écran et voir les 2 consoles en meme temps.
ctrl a +S : découper l’écran (Attention S majuscule)
ctrl a + tab : pour se déplacer entre zone
ctrl a + X : pour fermer la zone active
Merci à Florian (Gameplayer) pour cette astuce
Verrouiller
Dans certains cas, il peut être utile de verrouiller sa session screen, un petit coup de ctrl a + x et hop.
N’hésitez pas à proposer vos suggestions, remarques, ... Je mettrais à jour ce billet au fut et à mesure.
Commentaires
Petit truc qui peut servir aussi, si tu as besoin de lire des infos masquées par le défilement : ctrl+a puis escape permet de faire défiler l’écran avec les flèches directionnelles et de remonter (pas indéfiniment) dans les éléments qui ont été affichés à l’écran.
Il suffit ensuite de rappuyer sur escape pour retourner en mode normal.
bien joué, je mets à jour l’article grazie