Vous souhaitez être immédiatement informé dès qu’un serveur redémarre ? Que ce soit pour suivre des serveurs de production, détecter des redémarrages inattendus ou simplement valider la disponibilité après une maintenance, recevoir un email automatique est pratique et rassurant.
Dans ce tutoriel, nous allons mettre en place un mécanisme simple, fiable et totalement automatisé sous Linux.
Prérequis
Avant de commencer, assurez-vous de disposer de :
- Un serveur Linux avec accès root ou sudo.
- Un serveur de mail local ou distant configuré (Postfix, Exim, etc.).
- Le paquet
mailutils
ou équivalent installé pour envoyer des emails depuis la ligne de commande.
Pour installer mailutils
sur Debian/Ubuntu :
sudo apt update
sudo apt install mailutils -y
Étape 1 : créer un script d’envoi d’email
Nous allons créer un script simple qui enverra un email à l’administrateur. Il inclura le MOTD (Message of the Day) pour vous donner immédiatement des informations sur le serveur.
- Créez le fichier :
sudo nano /home/scripts/send-reboot-email.sh
- Ajoutez le contenu suivant :
#!/bin/bash
# Destinataire
TO="admin@example.com"
# Objet de l'email
SUBJECT="Serveur redémarré - $(hostname)"
# Récupération du MOTD dynamique si disponible
if [ -x "$(command -v run-parts)" ] && [ -d /etc/update-motd.d ]; then
MOTD=$(run-parts /etc/update-motd.d)
elif [ -f /etc/motd ]; then
MOTD=$(cat /etc/motd)
else
MOTD="Aucun MOTD disponible"
fi
# Corps de l'email
BODY="Le serveur $(hostname) vient de redémarrer.
Date : $(date)
--- MOTD ---
$MOTD
"
# Envoi de l'email
echo "$BODY" | mail -s "$SUBJECT" "$TO"
Code language: PHP (php)
- Rendez le script exécutable :
sudo chmod +x /home/scripts/send-reboot-email.sh
Étape 2 : créer un service systemd
Pour exécuter le script automatiquement après un redémarrage et seulement lorsque le serveur de mail est opérationnel, nous allons créer un service systemd.
- Créez le fichier de service :
sudo nano /etc/systemd/system/reboot-email.service
- Ajoutez le contenu :
[Unit]
Description=Envoyer un email après le redémarrage
After=network.target postfix.service
Requires=postfix.service
[Service]
Type=oneshot
ExecStart=/home/scripts/send-reboot-email.sh
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
Code language: JavaScript (javascript)
Ajustez
postfix.service
si vous utilisez un autre serveur de mail.
- Rechargez systemd et activez le service :
sudo systemctl daemon-reload
sudo systemctl enable reboot-email.service
Code language: CSS (css)
Étape 3 : tester le mécanisme
- Redémarrez le serveur :
shutdown -r now
- Vérifiez après le redémarrage que l’email est bien arrivé.
Pour le débogage :
sudo systemctl status reboot-email.service
Code language: CSS (css)
Vous pouvez également ajouter un journal pour suivre les envois :
ExecStart=/home/scripts/send-reboot-email.sh >> /var/log/reboot-email.log 2>&1
Code language: JavaScript (javascript)
Bonus : robustesse et bonnes pratiques
- Si votre serveur utilise plusieurs services de mail (Postfix + Dovecot), vous pouvez modifier
After=
pour inclure tous les services nécessaires. - Pour les environnements cloud, vous pouvez utiliser un SMTP externe si le mail local n’est pas disponible.
Résultat
Désormais, à chaque redémarrage, vous recevrez automatiquement un email contenant :
- Le nom de l’hôte.
- La date et l’heure du redémarrage.
- Le MOTD du serveur.
C’est une solution simple, fiable et entièrement automatisée qui permet de garder un œil sur vos serveurs sans effort.
Vous imaginez un projet WordPress ou WooCommerce ? Je vous accompagne à chaque étape pour concrétiser vos ambitions, avec rigueur et transparence.