Protégez vos sessions et bien plus avec SCREEN

Si vous n’utilisez pas screen au quotidien, c’est, soit que vous n’en avez pas entendu parlé, soit que vous n’êtes pas administrateur. A l’instar de nohup, screen vous permet de ne pas perdre le fil de vos scripts et opérations en cours. Non seulement screen est beaucoup plus simple d’utilisation que nohup, mais la commande permet de travailler sans script, de collaborer, utiliser plusieurs terminaux et même de tracer vos opérations. Je vous propose de trouver quelques cas d’utilisation de screen si dessous.

Perdre et reprendre ses sessions

L’utilisation de screen est extrêmement simple. Pour débuter, lorsque vous êtes connecté à un serveur Linux (ou Unix avec screen installé), tapez simplement :

screen

Et voilà : vous ne pouvez plus perdre votre session, sauf si, bien sur, vous sortez de screen avec la commande exit. Faites maintenant l’expérience suivante, tapez quelques commandes (ls, rm, mkfs, etc…) puis fermez brutalement votre terminal ou votre session Putty. Pour récupérer les opérations en cours, reconnectez vous avec le même utilisateur à votre serveur Linux et repérez les sessions screen en cours avec la commande ci-dessous :

screen -ls
There is a screen on:
19693.pts-0.arkzoyd-easyteam (04/24/2010 12:57:58 PM) (Detached)
1 Socket in /var/run/screen/S-root.

Pour vous attacher de nouveau à votre session perdue, tapez :

screen -r 19693.pts-0.arkzoyd-easyteam

ou plus simplement:

screen -r pts-0

Quelques Notes:

  • Vous pouvez nommer votre session screen avec -S pour la retrouver plus facilement
  • Vous pouvez vous détacher de votre session à tout moment pour vous y attacher de nouveau plus tard en tapant Ctrl+a puis Ctrl+d

Partager une session à plusieurs

Une autre fonctionnalité intéressante de screen est la capacité de s’attacher à plusieurs au même écran. Pour en faire l’expérience, lancez 2 terminaux connecté au même utilisateurs sur votre serveur Linux. Sur le premier terminal, tapez

screen

sur le second, repérez la session screen puis utilisez screen -x pour vous y attacher :

screen -ls
There is a screen on:
20697.pts-0.arkzoyd-easyteam (04/24/2010 02:52:32 PM) (Attached)
1 Socket in /var/run/screen/S-root.


screen -x -r 20697.pts-0.arkzoyd-easyteam

Tapez alors des commandes dans l’un et l’autre de vos terminaux et constatez qu’ils sont effectivement partagés. Vous pouvez faire la même chose depuis 2 ordinateurs situés chacun à l’autre bout du monde.

Journaliser ses opérations

Si vous êtes administrateur, enregistrez l’ensemble des opérations que vous effectuez est souvent très utile. Bien sur, vous pouvez utiliser la commande script. Vous pouvez surtout utiliser l’option -L de screen qui génère un fichier journal. Vous pouvez également à tout moment activer la journalisation à l’aide des combinaisons de touche Ctrl+a puis H.

Pour en savoir plus

Si vous ne connaissiez pas encore, screen deviendra sans doute bientôt une de vos commandes préférée. Pour en savoir plus, utilisez la combinaison de touche Ctrl+a puis ?, tapez man screen ou encore info screen. Aucun doute que vous personnaliserez bientôt vos environnements avec les fichiers de ressources