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)