Créez un MOTD pour votre serveur Linux.
Si, comme moi, vous avez besoin de gérer plusieurs serveurs Linux, créez un MOTD (Message du jour) Il s’agit d’une modification importante qui doit être effectuée lors de l’installation du serveur. Souvent ignoré, il vous aide à éviter les erreurs et vous donne même des informations importantes sur le serveur juste après votre connexion. basique! ! !
Qu’est-ce que MOTD ?
MOTD (Message du jour) Est un message envoyé au logiciel client lorsqu’il est identifié sur un serveur tel qu’un serveur IRC, SSH ou FTP. Généralement, ce message est utilisé pour afficher des règles, gérer des contacts ou des dessins d’art ASCII.
Le message peut être personnalisé pour afficher diverses statistiques telles que le nom de la machine, l’adresse IP, la consommation du processeur, la mémoire, etc.
Pour ceux qui ne savent pas ce que c’est, voici un exemple de MOTD :
Dans un premier temps, ce tutoriel se déroulera sur Ubuntu. Pour plus de simplicité, nous allons créer des scripts qui seront placés dans un répertoire spécifique. Ces scripts sont exécutés à chaque fois que l’utilisateur se connecte.
J’avais l’habitude de créer une bannière Ascii avec le nom de l’entreprise sur mon commutateur. Nous allons donc le reproduire sur notre serveur Linux.Pour créer ce style d’écriture particulier, nous ajouterons d’abord sac de figues.
# apt-get install figlet
Puis après l’installation assurez-vous que tout fonctionne bien avec la commande suivante :
# tutoriel rapide figlet
Ensuite, vous devez aller dans le répertoire /etc/update-motd.d/.
information! ! ! S’il n’existe pas, vous devez le créer et accorder les autorisations d’exécution suivantes avec cette commande : mkdir /update-motd.d && chmod 644 /update-motd.d.
Si ce dossier existe, vous devriez voir plusieurs fichiers (= scripts) avec des numéros. Le principe est simple, tous les scripts présents dans ce dossier sont exécutés lors du processus de connexion. Nommez-les simplement 00-xxx, 10-xxx, 20-xxx, etc. afin qu’ils s’exécutent dans l’ordre que vous choisissez.
Comme je voulais repartir de zéro, j’ai décidé de déplacer ces fichiers dans mon répertoire Temp.
# déplacer * /temp/
La première étape dans la création d’un MOTD.
Je vous donnerai mes informations à la fin de l’article. J’ai beaucoup cherché sur internet pour trouver un modèle qui me plaise et qui fonctionne.
Pour améliorer légèrement le rendu du MOTD, nous allons ajouter un peu de couleur. La première étape consiste à afficher le nom du serveur en police ASCII, tout en couleur. un programme complet.
donc je vais Créer un fichier couleur Je vais coller les codes de couleur ci-dessous dans le fichier. J’ai également ajouté la possibilité d’afficher le texte en gras ou souligné.
# réinitialiser la couleur NONE= » 33[m »
# Colors
WHITE= » 33[1;37m »
GREEN= » 33[1;32m »
RED= » 33[0;32;31m »
YELLOW= » 33[1;33m »
BLUE= » 33[34m »
CYAN= » 33[36m »
LIGHT_GREEN= » 33[1;32m »
LIGHT_RED= » 33[1;31m »
# Bold
BOLD= » 33[1m »
# Underline
UNDERLINE= » 33[4m »
Ensuite je vais créer le fichier 00-header pour afficher le nom de mon serveur. En règle générale les serveurs de production sont affichés en rouge et les serveurs de validation, développement en vert.
#!/bin/sh
# Appel du fichier avec les codes couleurs
. /etc/update-motd.d/colors
# Affichage du nom du serveur avec l’extension Prod ou Valid
# En rouge pour les serveurs de Prod et en vert pour les autres.
printf « n »$LIGHT_RED
figlet » « $(hostname -s) – Prod
printf $NONE
printf « n »
Ensuite je vais créer le fichier 01-banner pour afficher la version du système utilisée ainsi que son nom de code et la version du noyau.
Voici le code commenté :
#!/bin/sh
# Appel du fichier avec les variables de couleurs
. /etc/update-motd.d/colors
# Execution du script python lsb-release pour utiliser les variables systèmes
# pour récupérer RAPIDEMENT les informations de version
. /etc/lsb-release
echo $DISTRIB_DESCRIPTION $YELLOW « ($DISTRIB_CODENAME) » $NONE « ($(uname -o) » « $(uname -r) » « $(uname -m)) »
Une petite précision sur l’exécution de lsb_release. Cet utilitaire rempli des variables système pour pouvoir récupérer les informations de version de son serveur Linux. Voici les variables avec un exemple de contenu :
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION= »Ubuntu 16.04.6 LTS »
A cet instant voici ce que donne mon MOTD.
Astuce !!! Lorsque je me connecte en SSH j’ai toujours une ligne qui vient s’incruster à la fin de mon MOTD. C’est la ligne qui commence par last login :….. Pour ne plus avoir afficher cette ligne il suffit d’éditer le fichier de config de SSH (/etc/ssh/sshd_config) puis de mettre cette option à No, PrintLastLog no, puis de redémarrer le service SSH.
Autre point important, vous devez rendre exécutable les fichiers que vous créez, sinon cela ne fonctionnera pas. Vous devrez utiliser la commande ci-dessous :
# chmod 755 00-hostname
La même chose sera appliquée aux autres fichiers en changeant bien sûr leur nom.
Ajouter des informations utiles à votre MOTD.
Vous pouvez rajouter autant d’information que vous le souhaitez. Nous allons voir les classiques.
Voici mon code pour le fichier 02-sysinfo qui contient tout un tas d’info sur mon système comme le type de processeur, le nombre de cœurs et de processus actifs, le load average, la consommation de RAM, l’uptime, …..
#!/bin/bash
# Appel du fichier avec les variables de couleurs
. /etc/update-motd.d/colors
# Récupération des informations à afficher
# Récupération des infos sur le processeur
proc=`cat /proc/cpuinfo | grep model | cut -c14- | sed -n « 2 p »`
# Supprime les espaces dans Avant/ Après
proc=$(echo « ${proc} » | sed ‘s/^ *//g’)
# Récupère le nombre de coeurs
coeurs=`cat /proc/cpuinfo | grep -i « ^processor » | wc -l`
# récupère la mémoire RAM SWAP Libre et Total
memfree=`cat /proc/meminfo | grep MemFree | awk {‘print $2’}`
memtotal=`cat /proc/meminfo | grep MemTotal | awk {‘print $2’}`
swaptotal=`cat /proc/meminfo | grep SwapTotal | awk {‘print $2 » » $3’}`
pourcentfree=$((($memfree * 100)/$memtotal))
# Récupère l’uptime du serveur
uptime=`uptime -p`
# Récupère l’adresse IP du serveur
addrip=`hostname -I | cut -d » » -f2`
# Récupère le nombre de processus en exécution
process=`ps ax | wc -l | tr -d » « `
# Récupère le nombre d’utilisateur connecté en SSH/Console
connecteduser=`who | wc -l`
# Récupére l’utilisation des disques
diskused=`df -h | grep /dev/ploop14990p1 | awk {‘print $5 « % of » $2’}`
# Récupère les inodes utilisés
inodeused=`df -i | grep /dev/ploop14990p1 | awk {‘print $5’}`
# Récupére le loadavg
read one five fifteen rest < /proc/loadavg
# Affichage des variables
printf « »$LIGHT_GREEN
printf » Processeur : »
printf « »$NONE
printf » $proc ($coeurs cores) »
printf « n »
printf « »$LIGHT_GREEN
printf » Charge CPU : »
printf « »$NONE
printf » $one (1min) / $five (5min) / $fifteen (15min) »
printf « n »
printf « »$LIGHT_GREEN
printf » RAM : »
printf « »$NONE
printf » $(($memfree/1024)) MB soit $pourcentfree%% Libre / $(($memtotal/1024)) MB Total »
printf « n »
printf « »$LIGHT_GREEN
printf » Processes : »
printf « »$NONE
printf » $process »
printf « »$LIGHT_GREEN
printf » Users logged in : »
printf « »$NONE
printf » $connecteduser «
printf « »$LIGHT_GREEN
printf « Swap: »
printf « »$NONE
printf » $swaptotal »
printf « n »
printf « »$LIGHT_GREEN
printf » Disk Usage : »
printf « »$NONE
printf » $diskused »
printf « »$LIGHT_GREEN
printf » Inodes Used : »
printf « »$NONE
printf » $inodeused% »
printf « n »
printf « »$LIGHT_GREEN
printf » Adresse IP : »
printf « »$LIGHT_RED
printf » $addrip »
printf « »$NONE
printf « n »
printf « »$LIGHT_GREEN
printf » Uptime : »
printf « »$NONE
printf » $uptime »
printf « n »
printf « n »
Voici ce que donne mon MOTD pour l’instant :
Si vous souhaitez utiliser mon MOTD dans le fichier 02-sysinfo, vous devrez ajuster le nom de la partition ou du disque que vous souhaitez afficher (1) ainsi que la carte réseau qui porte votre IP (2)
Utilisation avancée du MOTD
Si vous voulez encore ajouter des informations dans votre MOTD. Voici quelques options avancées que vous pouvez insérer.
Mises à jour
Grâce à la commande apt-get vous pouvez savoir si des mises à jour sont disponibles et si des paquets ne sont plus utiles à votre installation. J’ai nommé le fichier 03-upgrade. Voici son contenu :
#!/bin/bash
. /etc/update-motd.d/colors
n=$(apt-get -qq –just-print dist-upgrade | cut -f 2 -d » » | sort -u | wc -l)
if [[ $n -gt 0 ]]; then printf $LIGHT_RED printf « Vous avez %s packages à mettre à jour. » « $n » printf $NONE »nn » fi n=$(apt-get -qq –just-print autoremove | cut -f 2 -d » » | sort -u | wc -l) si [[ $n -gt 0 ]]; then printf $YELLOW printf « Vous avez %s packages installés automatiquement et vous n’en avez plus besoin. » « $n » printf $NONE »nn » fi
prévenir! ! ! Les lignes ne sont affichées que si le nombre de paquets > 0.
mon MOTD
Voici le MOTD que j’ai installé sur le serveur :
En un coup d’œil, j’ai quelques informations importantes sur mon serveur.Je fais particulièrement attention à la couleur de la bannière, si c’est rouge c’est de la production donc prévenir! ! !, si c’est vert, alors c’est moins risqué à valider. Ces astuces mnémoniques sont très utiles.
Si vous ajoutez beaucoup d’informations à MOTD, la connexion au serveur peut prendre plus ou moins de temps. Il faut donc faire un choix.
Si vous insérez des informations supplémentaires dans la MOTD, ou si vous avez des exemples à utiliser dans votre entreprise, n’hésitez pas à me les envoyer pour que je puisse faire une petite galerie. Cela peut être amusant et donner des idées.
c’est ça.
Stay connected