Le Message Of The Day (communément appelé MOTD) est un message d’accueil ou des notifications importantes que les administrateurs de serveurs peuvent configurer pour s’afficher lorsqu’un utilisateur se connecte au serveur via SSH.
Ce tutoriel vous montre comment mettre à jour et personnaliser le MOTD sur un serveur Ubuntu 22.04.
Prérequis
- Serveur Ubuntu 22.04 avec accès root ou un utilisateur avec des privilèges sudo.
- Accès SSH au serveur.
Étape 1 : connexion au Serveur
Connectez-vous à votre serveur Ubuntu via SSH:
ssh USER@SERVER_IP -pPORT
Code language: CSS (css)
Étape 2 : vérifier le MOTD existant
Pour voir le MOTD actuel, utilisez la commande suivante :
cat /run/motd.dynamic
Étape 3 : modifier le MOTD dynamique
Ubuntu 22.04 utilise des scripts dans le répertoire /etc/update-motd.d/
pour générer une partie du MOTD dynamiquement. Vous pouvez ajouter, supprimer ou modifier les scripts dans ce répertoire pour personnaliser davantage le MOTD.
Entête MOTD
Nous allons créer un entête qui contient le nom de notre serveur en ASCII art, ce qui nous permettra de bien l’identifier lors de nos sessions SSH:
sudo nano /etc/update-motd.d/00-custom
Et on y ajoute notre script bash:
#!/bin/sh
# Reset
Color_Off='\033[0m' # Text Reset
# Bold
BBlack='\033[1;30m' # Black
BRed='\033[1;31m' # Red
BGreen='\033[1;32m' # Green
BYellow='\033[1;33m' # Yellow
BBlue='\033[1;34m' # Blue
BPurple='\033[1;35m' # Purple / Magenta
BCyan='\033[1;36m' # Cyan
BWhite='\033[1;37m' # White
# Set the text color to green
printf "$BGreen"
# https://patorjk.com/software/taag/#p=display&f=Doom&t=APOLLO%20.%20SKYMINDS%20.%20NET
cat << "EOF"
___ ______ _____ _ _ _____ _____ _ ____ ____ ________ _ _______ _____ _ _ _____ _____
/ _ \ | ___ \ _ | | | | | _ | / ___| | / /\ \ / / \/ |_ _| \ | | _ \/ ___| | \ | || ___|_ _|
/ /_\ \| |_/ / | | | | | | | | | | \ `--.| |/ / \ V /| . . | | | | \| | | | |\ `--. | \| || |__ | |
| _ || __/| | | | | | | | | | | `--. \ \ \ / | |\/| | | | | . ` | | | | `--. \ | . ` || __| | |
| | | || | \ \_/ / |____| |___\ \_/ / _ /\__/ / |\ \ | | | | | |_| |_| |\ | |/ / /\__/ / _ | |\ || |___ | |
\_| |_/\_| \___/\_____/\_____/\___/ (_) \____/\_| \_/ \_/ \_| |_/\___/\_| \_/___/ \____/ (_) \_| \_/\____/ \_/
EOF
# Set the text color to magenta
printf "$BPurple"
# Left image lines
left1=" 88 88 "
left2=" 88 88 "
left3=" 88 88 "
left4=",adPPYYba, 8b,dPPYba, ,adPPYba, 88 88 ,adPPYba,"
left5="\"\" \`Y8 88P' \"8a a8\" \"8a 88 88 a8\" \"8a"
left6=",adPPPPP88 88 d8 8b d8 88 88 8b d8"
left7="88, ,88 88b, ,a8\" \"8a, ,a8\" 88 88 \"8a, ,a8\""
left8="\"8bbdP\"Y8 88\`YbbdP\"' \"\"YbbdP\"' 88 88 \"\"YbbdP\"'"
left9=" 88 "
left10=" 88 "
# Right image lines
right1=" . + . . . . . ."
right2=" . . . *"
right3=" . * . . . . . . + ."
right4=" \"You Are Here\" . . + . . ."
right5=". | . . . . . ."
right6=" | . . . +. + ."
right7=" \\|/ . . . ."
right8=" . . V . * . . . . + ."
right9=" + . . . +"
right10=" . . + .+. ."
# Combine and print
echo "$left1 $right1"
echo "$left2 $right2"
echo "$left3 $right3"
echo "$left4 $right4"
echo "$left5 $right5"
echo "$left6 $right6"
echo "$left7 $right7"
echo "$left8 $right8"
echo "$left9 $right9"
echo "$left10 $right10"
# STATS
upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)"
secs=$((${upSeconds}%60))
mins=$((${upSeconds}/60%60))
hours=$((${upSeconds}/3600%24))
days=$((${upSeconds}/86400))
UPTIME=$(printf "%d days, %02dh%02dm%02ds" "$days" "$hours" "$mins" "$secs")
# get the load averages
read one five fifteen rest < /proc/loadavg
# text in yellow
printf "$BYellow"
echo "
.~~. .~~. `date +"%A, %e %B %Y, %r"`
'. \ ' ' / .' `uname -srmo`
.~ .~~~..~.
: .~.'~'.~. : Uptime.............: ${UPTIME}
~ ( ) ( ) ~ Memory.............: `cat /proc/meminfo | grep MemFree | awk {'print $2'}`kB (Free) / `cat /proc/meminfo | grep MemTotal | awk {'print $2'}`kB (Total)
( : '~'.~.'~' : ) Load Averages......: ${one}, ${five}, ${fifteen} (1, 5, 15 min)
~ .~ ( ) ~. ~ Running Processes..: `ps ax | wc -l | tr -d " "`
( : '~' : ) IP Addresses.......: `ip a | grep glo | awk '{print $2}' | head -1 | cut -f1 -d/` and `wget -q -O - https://icanhazip.com/ | tail`
'~ .~~~. ~' Weather............: `curl -s "https://rss.accuweather.com/rss/liveweather_rss.asp?metric=1&locCode=EUR|FR|FR|NANTES|" | sed -n '/Currently:/ s/.*: \(.*\): \([0-9]*\)\([CF]\).*/\2°\3, \1/p'`
'~'
"
# text default colour
printf "$Color_Off"
Code language: PHP (php)
Cela affiche le nom du serveur (apollo.skyminds.net
) puis une petite frise, et enfin les statistiques ainsi que la météo pour Nantes. Vous pouvez modifier la ville dans l’avant-dernière ligne.
Notez que j’ai compilé deux images pour qu’elles s’affichent sur les mêmes lignes: le mot “apollo” en ASCII art et une version de l’univers avec le texte “You are here!”. Il faut jouer avec l’indentation mais au bout de quelques essais, cela rend plutôt pas mal je trouve.
Rendez le script exécutable :
sudo chmod +x /etc/update-motd.d/00-custom
Lancez la compilation de tous les modules dynamiques pour obtenir le MOTD final qui sera affiché à chaque connexion SSH:
run-parts /etc/update-motd.d/ > /run/motd.dynamic
Code language: JavaScript (javascript)
Étape 4: Redémarrer les services
Vous avez apporté des modifications importantes donc un redémarrage du service SSH ainsi que MOTD est nécessaire :
sudo systemctl restart sshd
sudo systemctl restart motd-news
Étape 6: Tester votre nouveau MOTD
Pour tester les modifications, quittez votre session actuelle:
exit
Code language: PHP (php)
Ouvrez une nouvelle session SSH vers le serveur.
ssh USER@SERVER_IP -pPORT
Code language: CSS (css)
Votre nouveau Message Of The Day devrait maintenant s’afficher.
Voici ce que cela donne pour Apollo (sans les couleurs):
___ ______ _____ _ _ _____ _____ _ ____ ____ ________ _ _______ _____ _ _ _____ _____
/ _ \ | ___ \ _ | | | | | _ | / ___| | / /\ \ / / \/ |_ _| \ | | _ \/ ___| | \ | || ___|_ _|
/ /_\ \| |_/ / | | | | | | | | | | \ `--.| |/ / \ V /| . . | | | | \| | | | |\ `--. | \| || |__ | |
| _ || __/| | | | | | | | | | | `--. \ \ \ / | |\/| | | | | . ` | | | | `--. \ | . ` || __| | |
| | | || | \ \_/ / |____| |___\ \_/ / _ /\__/ / |\ \ | | | | | |_| |_| |\ | |/ / /\__/ / _ | |\ || |___ | |
\_| |_/\_| \___/\_____/\_____/\___/ (_) \____/\_| \_/ \_/ \_| |_/\___/\_| \_/___/ \____/ (_) \_| \_/\____/ \_/
88 88 . + . . . . . .
88 88 . . . *
88 88 . * . . . . . . + .
,adPPYYba, 8b,dPPYba, ,adPPYba, 88 88 ,adPPYba, "You Are Here" . . + . . .
"" `Y8 88P' "8a a8" "8a 88 88 a8" "8a . | . . . . . .
,adPPPPP88 88 d8 8b d8 88 88 8b d8 | . . . +. + .
88, ,88 88b, ,a8" "8a, ,a8" 88 88 "8a, ,a8" \|/ . . . .
"8bbdP"Y8 88`YbbdP"' ""YbbdP"' 88 88 ""YbbdP"' . . V . * . . . . + .
88 + . . . +
88 . . + .+. .
.~~. .~~. Wednesday, 11 October 2023, 03:04:06 PM
'. \ ' ' / .' Linux 5.15.0-86-generic x86_64 GNU/Linux
.~ .~~~..~.
: .~.'~'.~. : Uptime.............: 0 days, 05h32m46s
~ ( ) ( ) ~ Memory.............: 18804940kB (Free) / 32585420kB (Total)
( : '~'.~.'~' : ) Load Averages......: 0.28, 0.16, 0.11 (1, 5, 15 min)
~ .~ ( ) ~. ~ Running Processes..: 303
( : '~' : ) IP Addresses.......: xxx.xxx.xxx.xxxx and 2001:xxxx:xxxx:xxxx::
'~ .~~~. ~' Weather............: 25°C, Sunny
'~'
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-86-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Wed Oct 11 15:04:06 CEST 2023
System load: 0.2802734375
Usage of /home: 33.7% of 778.62GB
Memory usage: 10%
Swap usage: 0%
Temperature: 53.0 C
Processes: 299
Users logged in: 0
IPv4 address for eno1: xxx.xxx.xxx.xxxx
IPv6 address for eno1: 2001:xxxx:xxxx:xxxx::
Expanded Security Maintenance for Applications is enabled.
0 updates can be applied immediately.
Code language: PHP (php)
Conclusion
Vous savez maintenant comment personnaliser le Message Of The Day (MOTD) sur Ubuntu Server 22.04.
Vous pouvez utiliser cette fonctionnalité pour afficher des informations utiles ou des notifications importantes pour les utilisateurs lorsqu’ils se connectent à votre serveur. Ou tout simplement pour identifier visuellement votre serveur plus facilement!
Vous voulez un site WordPress ou WooCommerce qui soit à la fois rapide et performant? Vous êtes au bon endroit.