Debian – Personnaliser le motd

Debian – Personnaliser le motd

La personnalisation du MOTD (Message of the Day) sous Linux permet de fournir des informations utiles et pertinentes dès la connexion à un système. Cela peut inclure des données système (comme la charge CPU ou l’espace disque), des messages de bienvenue ou des rappels spécifiques pour les utilisateurs. C’est un moyen efficace de centraliser des informations critiques tout en ajoutant une touche personnalisée.

Etape 1 :

Connectez-vous en ssh et mettez à jour les paquets

ssh [utilisateur]@[ip_machine_distante]

apt update && apt upgrade -y

Etape 2 :

Installez figlet

apt install figlet -y

Etape 3 :

On supprime les éléments contenus dans /etc/update-motd.d

rm -f /etc/update-motd.d/*

Etape 4 :

Créer le fichier colors

nano colors

NONE="\033[m"
WHITE="\033[1;37m"
GREEN="\033[1;32m"
RED="\033[0;32;31m"
YELLOW="\033[1;33m"
BLUE="\033[34m"
CYAN="\033[36m"
LIGHT_GREEN="\033[1;32m"
LIGHT_RED="\033[1;31m"

Etape 5 :

Créer le fichier 00-hostname

nano 00-hostname

#!/bin/sh                                                                                                                                                                                                                                       

. /etc/update-motd.d/colors                                                                                                                                                                                                                     

printf "\n"$LIGHT_RED
figlet "  "$(hostname -s)
printf $NONE
printf "\n"

Etape 6 :

Créer 10-banner

nano 10-banner

#!/bin/bash
#
#    Copyright (C) 2009-2010 Canonical Ltd.
#
#    Authors: Dustin Kirkland <kirkland@canonical.com>
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License along
#    with this program; if not, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

. /etc/update-motd.d/colors

[ -r /etc/update-motd.d/lsb-release ] && . /etc/update-motd.d/lsb-release

if [ -z "$DISTRIB_DESCRIPTION" ] && [ -x /usr/bin/lsb_release ]; then
    # Fall back to using the very slow lsb_release utility
    DISTRIB_DESCRIPTION=$(lsb_release -s -d)
fi

re='(.*\()(.*)(\).*)'
if [[ $DISTRIB_DESCRIPTION =~ $re ]]; then
    DISTRIB_DESCRIPTION=$(printf "%s%s%s%s%s" "${BASH_REMATCH[1]}" "${YELLOW}" "${BASH_REMATCH[2]}" "${NONE}" "${BASH_REMATCH[3]}")
fi

echo -e "  "$DISTRIB_DESCRIPTION "(kernel "$(uname -r)")\n"

# Update the information for next time
printf "DISTRIB_DESCRIPTION=\"%s\"" "$(lsb_release -s -d)" > /etc/update-motd.d/lsb-release &

Etape 7 :

Créer le fichier 20-sysinfo

nano 20-sysinfo

#!/bin/bash
proc=`(echo $(more /proc/cpuinfo | grep processor | wc -l ) "x" $(more /proc/cpuinfo | grep 'model name' | uniq |awk -F":"  '{print $2}')>memfree=`cat /proc/meminfo | grep MemFree | awk {'print $2'}`
memtotal=`cat /proc/meminfo | grep MemTotal | awk {'print $2'}`
uptime=`uptime -p`
addrip=`hostname -I | cut -d " " -f1`
# R  cup  rer le loadavg
read one five fifteen rest < /proc/loadavg

# Affichage des variables
printf "  Processeur : $proc"
printf "\n"
printf "  Charge CPU : $one (1min) / $five (5min) / $fifteen (15min)"
printf "\n"
printf "  Adresse IP : $addrip"
printf "\n"
printf "  RAM : $(($memfree/1024))MB libres / $(($memtotal/1024))MB"
printf "\n"
printf "  Uptime : $uptime"
printf "\n"
printf "\n"

Etape 8 :

Une fois que les fichiers sont créés, il faut les rendre exécutables

chmod 755 /etc/update-motd.d/00-hostname
chmod 755 /etc/update-motd.d/10-banner
chmod 755 /etc/update-motd.d/20-sysinfo

Etape 9 :

Et enfin, supprimer les fichiers de /etc/motd et créer un lien symbolique

rm -f /etc/motd
ln -s /var/run/motd /etc/motd

Déconnecter et reconnecter vous en ssh 😉

Essayons de scripter tout ça !

nano setup_motd.sh

Voici le code :

#!/bin/bash

# Mettre à jour les paquets et installer figlet
echo "Mise à jour des paquets et installation de figlet..."
apt-get update && apt-get install -y figlet

# Supprimer les fichiers existants dans /etc/update-motd.d
echo "Suppression des fichiers existants dans /etc/update-motd.d..."
rm -f /etc/update-motd.d/*

# Créer le fichier colors
echo "Création du fichier /etc/update-motd.d/colors..."
cat << 'EOF' > /etc/update-motd.d/colors
NONE="\033[m"
WHITE="\033[1;37m"
GREEN="\033[1;32m"
RED="\033[0;32;31m"
YELLOW="\033[1;33m"
BLUE="\033[34m"
CYAN="\033[36m"
LIGHT_GREEN="\033[1;32m"
LIGHT_RED="\033[1;31m"
EOF

# Créer le fichier 00-hostname
echo "Création du fichier /etc/update-motd.d/00-hostname..."
cat << 'EOF' > /etc/update-motd.d/00-hostname
#!/bin/sh

. /etc/update-motd.d/colors

printf "\n"$LIGHT_RED
figlet "  "$(hostname -s)
printf $NONE
printf "\n"
EOF

# Créer le fichier 10-banner
echo "Création du fichier /etc/update-motd.d/10-banner..."
cat << 'EOF' > /etc/update-motd.d/10-banner
#!/bin/bash
#
#    Copyright (C) 2009-2010 Canonical Ltd.
#
#    Authors: Dustin Kirkland <kirkland@canonical.com>
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License along
#    with this program; if not, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

. /etc/update-motd.d/colors

[ -r /etc/update-motd.d/lsb-release ] && . /etc/update-motd.d/lsb-release

if [ -z "$DISTRIB_DESCRIPTION" ] && [ -x /usr/bin/lsb_release ]; then
    DISTRIB_DESCRIPTION=$(lsb_release -s -d)
fi

re='(.*\()(.*)(\).*)'
if [[ $DISTRIB_DESCRIPTION =~ $re ]]; then
    DISTRIB_DESCRIPTION=$(printf "%s%s%s%s%s" "${BASH_REMATCH[1]}" "${YELLOW}" "${BASH_REMATCH[2]}" "${NONE}" "${BASH_REMATCH[3]}")
fi

echo -e "  "$DISTRIB_DESCRIPTION "(kernel "$(uname -r)")\n"

printf "DISTRIB_DESCRIPTION=\"%s\"" "$(lsb_release -s -d)" > /etc/update-motd.d/lsb-release &
EOF

# Créer le fichier 20-sysinfo
echo "Création du fichier /etc/update-motd.d/20-sysinfo..."
cat << 'EOF' > /etc/update-motd.d/20-sysinfo
#!/bin/bash
proc=`(echo $(more /proc/cpuinfo | grep processor | wc -l ) "x" $(more /proc/cpuinfo | grep 'model name' | uniq |awk -F":"  '{print $2}') )`
memfree=`cat /proc/meminfo | grep MemFree | awk {'print $2'}`
memtotal=`cat /proc/meminfo | grep MemTotal | awk {'print $2'}`
uptime=`uptime -p`
addrip=`hostname -I | cut -d " " -f1`
read one five fifteen rest < /proc/loadavg

printf "  Processeur : $proc"
printf "\n"
printf "  Charge CPU : $one (1min) / $five (5min) / $fifteen (15min)"
printf "\n"
printf "  Adresse IP : $addrip"
printf "\n"
printf "  RAM : $(($memfree/1024))MB libres / $(($memtotal/1024))MB"
printf "\n"
printf "  Uptime : $uptime"
printf "\n"
printf "\n"
EOF

# Rendre les fichiers exécutable
echo "Rendre les fichiers exécutable..."
chmod 755 /etc/update-motd.d/00-hostname
chmod 755 /etc/update-motd.d/10-banner
chmod 755 /etc/update-motd.d/20-sysinfo

# Supprimer le fichier /etc/motd et créer un lien symbolique
echo "Configuration de /etc/motd..."
rm -f /etc/motd
ln -s /var/run/motd /etc/motd

echo "Configuration terminée. Connectez-vous à nouveau pour voir le résultat."

Rendez le executable

chmod +x setup_motd.sh

Maintenant, tester le !

./setup_motd.sh

Comments

No comments yet. Why don’t you start the discussion?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *