Menu
Donnez votre avis

Linux - Rapport quotidien des serveurs par mail

Posez votre question
L'administration de systèmes Linux est une tâche d'autant plus difficile qu'il y a un grand nombre de serveurs car il faut surveiller continuellement les ressources systèmes et les mises à jour nécessaires pour chacun d'entre eux.

Le script suivant permet de créer un rapport envoyé quotidiennement par mail à l'administrateur et indiquant l'état du disque dur et les mises à jour nécessaire (pour un système Debian, pour les autres systèmes il faut adapter en fonction des systèmes de gestion de packages disponibles :


#!/bin/bash
apt-get update
( 
        echo To: destinataire@domaine.ext
        echo From: systeme@domaine.net
 if [ "$( df -h | grep hda1 | cut -c40-42)" -ge "80" ]; then echo Subject: Rapport du `date +%e\ %B\ %Y` : ESPACE DISQUE FAIBLE
 else echo Subject: Rapport quotidien du `date +%e\ %B\ %Y` pour `hostname`
 fi
        echo Rapport de `hostname`
        echo Usage du disque :
        echo 
        df -h
        echo
        echo Charge du serveur :
        echo
        uptime
        echo
        echo Mises à jour nécessaires
        echo
        apt-get -s upgrade
) | /var/qmail/bin/qmail-inject -fexpediteur@domaine.ext destinataire@domaine.ext


Le script ci-dessus permet d'afficher une alerte dans le sujet du message si le disque hda1 a un taux de remplissage supérieur à 80%. Le système de messagerie utilisé pour l'envoi dans l'exemple est qmail, mais n'importe quel autre commande similaire (par exemple /usr/sbin/sendmail) peut-être utilisée.

Il suffit ensuite de rendre ce script exécutable, par exemple :
chmod +x /home/user/script/dailyreport.sh


Enfin, la création d'une entrée dans la crontab permettra l'envoi quotidien (5h00 du matin dans l'exemple ci-dessous) du message par mail :
crontab -e


Insérer la ligne suivante :
00 5 * * * /home/user/script/dailyreport.sh > /dev/null 2>&1
Ajouter un commentaire

Commentaires

Commenter la réponse de Utilisateur anonyme