Où comment identifier facilement le serveur de prod de celui de preprod (ou le
master du slave, ou celui de prod et son futur remplaçant…).
Bref, comment différencier facilement votre terminal avec une connexion SSH sur
un serveur critique, et celui vers un serveur où vous pouvez tout
casser^W^W^W^W^W moins critique.
C'est surtout valable quand les hostnames ne diffèrent que d'une lettre ou d'un
chiffre, où la confusion est plus facile.
Si il s'agit d'un serveur perso, le plus simple reste de modifier le prompt de votre shell. Mais ce n'est pas envisageable sur un serveur sur lequel vous vous contentez d'intervenir, ou où plusieurs admin sont susceptibles d'utiliser le compte root.
La solution est d'agir au niveau de votre terminal, ici urxvt. Les options de
rxvt peuvent être quasiment toutes changées à chaud grâce à des commandes envoyées
dans des séquences d'échappement du shell. Par exemple, pour avoir un curseur
rouge, la commande à envoyer est \033]12;red\007
. Vous pouvez tester avec un
simple echo
:
$ echo '\033]12;red\007'
C'est magique, mais ça reste compliquer à écrire, et encore plus à retenir. On
va donc affecter la commande à une séquence de touche, par exemple Alt+!
(et Alt+Shift+!). Dans votre .Xdefaults
/.Xressources
:
URxvt.keysym.M-S-exclam: command:\033]12;red\007
URxvt.keysym.M-exclam: command:\033]12;#657b83\007 # #657b83 à remplacer par la couleur de votre police par défaut.
À noter qu'ainsi, même en étant dans un éditeur de texte, vous identifierez rapidement le serveur de prod car le curseur restera rouge, ce qui n'est pas le cas avec un prompt coloré.
L'inconvénient est que le changement de couleur du curseur n'est pas automatique, même si il est bien simplifié. Si vous avez une liste précise de serveurs en prod, une idée peut être, à l'aide d'une extension Perl à rxvt, de comparer le titre de la fenêtre X11 (qui contient le hostname du serveur) à cette liste, pour pouvoir changer la couleur du curseur en conséquence.
Référence :
- Article de Ulhume très intéressant et plus complet à propos des styles de curseur, avec une utilisation différente.