Adaptateur série, écran et OS X…

Quelquefois il faut recourir à l’adaptateur série de Keyspan (le problème se pose particulièrement, encore qu’un peu moins que par le passé, avec certains périphériques de Point de vente) pour gérer les appareils disposant d’un port série. Si vous détestez l’idée d’ouvrir une session console avec Zterm (qui n’est plus mis à jour à ma connaissance) ou de redémarrer sur une machine virtuelle Windows, vous trouverez une nouvelle solution avec goSerial qui rend le Keyspan série vers usb adaptateur connecté avec un câble modem null utile. Vous serez au paradis de la ligne de commande en moins de temps qu’il n’en faut pour le dire. GoSerial peut être téléchargé ici.

Vous pouvez aussi utiliser la commande screen. La commande screen ouvrira un terminal virtuel et vous offre les fonctionnalités d’un bon vieux DEC VT100. Screen est l’un des outils très efficaces quand vous travaillez avec de multiples serveurs en même temps, ou avec plusieurs sessions VT comme c’est le cas parfois.

Pour ouvrir une session screen dans un APC :

screen /dev/tty.KeySerial1 2400

Pour ouvrir une session screen dans un Qlogic :

screen /dev/tty.KeySerial1 9600

Pour ouvrir une session screen dans un RAID Promise :

screen /dev/tty.KeySerial1 115200

Pour voir vos sessions screen actives :

screen -ls

Il vous donnera des screen similaires à :

6077.ttys001.krypted2 (Detached)

Quand vous listez les screens vous noterez que certains peuvent être « détachés » (ie. déconnectés). Vous pouvez aussi démarrer un screen détaché. Pour se faire, utilisez la drapeau -d quand vous invoquez le screen (ou bien -D si vous ne voulez pas que le process ait les ressources fork). Si vous désirez attaché un screen qui a été détaché, -R vous y reconnectera automatiquement. Il peut être utile d’avoir aussi des noms plus amicaux quand vous travaillez avec de multiples sessions screen. Pour se rattacher à une session screen attachée, utilisez le -x.

screen -x 6077.ttys001.krypted2

Pour founir une façon aisée de se souvenir d’un nom, utilisez l’option -s. Pour commencer une session screen appelé simplement Qlogic :

screen -s Qlogic /dev/tty.KeySerial1 9600

En créant un fichier .screenrc dans votre dossier utilisateur, vous pouvez aussi configurer de multiples options pour screen.

Si la commande screen est très utile pour se connecter à des appareils externes par la ligne de commande, c’est seulement une petite partie de ce que screen peut faire. Ceux qui utilisent le Terminal livré avec OS X ont utilisé des environnements qui fonctionnent à l’instar de screen auparavant. Vous pouvez ouvrir des onglets et ainsi laisser une session travailler tranquillement en arrière-plan (en train de tailer des logs par exemple…), dans une autre session vous lisez une page man ou démarrez un autre process.  Screen est capable de prendre toutes ses fonctionnalités et des les inclure dans une session du Terminal pour des environnements qui ne disposent pas d’un gestionnaire de ligne de commande aussi interactif. Par exemple, si vous sshez un hôte linux dans un data center, vous devrez initiez deux sessions dans cet hôte afin d’avoir deux sessions screen concurremment ouvertes, mais vous n’aurez besoin que d’une session ssh (et vous pouvez être limité à une seule) et toujours avoir la flexibilité que vous avez avec l’écran de Terminal, dans une seule fenêtre peut-être.

Par exemple, disons que vous sshez dans un serveur RHEL (Red Hat) et que vous invoquez l’éditeur emacs :

screen emacs prog.c

Maintenant disons que vous tapez quelques lignes d’un nouveau fichier de configuration samba et que vous voulez exécuter la commande tail sur les lots de samba pour être sûr que vous augmentez les correctes options :

screen tail -f  /var/logs/samba/log.smbd

Pour revenir à emacs :

screen -R

Il y a encore plein d’autres choses que vous pouvez faire avec screen et il ne vous reste plus qu’à les découvrir. Que du bonheur en perspective !

Cet article a paru sur Tech Journal de 318, le 9 juin 2011.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

en_GBEnglish (UK)