Linux - Rapport quotidien des serveurs par mail
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