• Script de surveillance des températures

    Voici un petit script qui va surveiller à intervalles réguliers la température du CPU et de la carte mère et vous envoyer un mail d'alerte si les valeurs prédéfinies dans le script viennent à être dépassées.

    Le script enverra un mail d'alerte pour un état "warning" et un autre si le statut passe à "critical".

    Tutoriel réalisé sur Debian Wheezy.

    Télécharger « Script_surveillance_températures_CPU_CM »

    Le script nécessite l'utilitaire lm-sensors.

    « Documentation lm-sensors »

    Si celui-ci n'est pas installé utiliser la commande :

    sudo apt-get install lm-sensors

    Une fois lm-sensors installé, utilisez la ommande sensors dans votre terminal.

    En retour, vous allez voir selon votre configuration matérielle les différents capteurs.

    Les capteurs qui vont être utilisés pour le script sont "CPU Temperature" et "MB Temperature".

     

    Script de surveillance des températures

       ( cliquer sur l'image pour l'agrandir )

     

    Les 2 lignes complètes ne sont pas intéressantes pour le script, les 2 éléments qui vont nous intéresser sont ici les valeurs 30 et 35.

    Pour extraire ces valeurs, je vais utiliser les commandes grep, tr et awk.

    Pour commencer, je vais utiliser grep pour chercher la ligne contenant la chaîne de caractère "CPU Temperature".

     sensors | grep "CPU Temperature"  

     

    Script de surveillance des températures

      ( cliquer sur l'image pour l'agrandir )

     

    Une fois la chaîne de caractère trouvée, je vais utiliser la commande tr pour substituer par des espaces vides le signe + devant le 30 et le signe après le 1er zéro.

    sensors | grep "CPU Temperature" | tr '+' ' ' | tr '.' ' ' 

    Vous pouvez voir que les signes ont effectivement bien été substitués.

     

    Script de surveillance des températures

       ( cliquer sur l'image pour l'agrandir )

     

    Pour terminer, je vais utiliser la commande awk pour extraire la valeur 30.

    sensors | grep "CPU Temperature" | tr '+' ' ' | tr '.' ' ' | awk '{print $3}'

     

    Script de surveillance des températures

        ( cliquer sur l'image pour l'agrandir )

     

    Pour la température de la carte mère, il suffit de reprendre la même commande en remplaçant "CPU Temperature" par "MB Temperature".

    sensors | grep "MB Temperature" | tr '+' ' ' | tr '.' ' ' | awk '{print $3}'

     

    Script de surveillance des températures

       ( cliquer sur l'image pour l'agrandir )

     

     J'ai crée une tâche cron pour lancer le script toutes les 5 minutes. 

     

    Script de surveillance des températures

        ( cliquer sur l'image pour l'agrandir )

     

    Si les températures atteignent les valeurs "Warning", une notification par mail sera envoyée.

     

    Script de surveillance des températures

      ( cliquer sur l'image pour l'agrandir )

     

    Script de surveillance des températures

      ( cliquer sur l'image pour l'agrandir )

     

    Si les températures atteignent les valeurs "Critical", une notification par mail sera également envoyée.

     

    Script de surveillance des températures

       ( cliquer sur l'image pour l'agrandir )

     

    Script de surveillance des températures

        ( cliquer sur l'image pour l'agrandir )

     

    Je voulais intégrer 2 lignes pour envoyer des notifications si le status passait de "Warning" ou "Critical" à "OK", mais je n'ai pas encore trouvé la fonction permettant d'envoyer une notification unique car ici, la notification de retour "OK" serait déclenchée par la tache cron, c'est à dire toutes les 5 minutes.

    Si vous avez des idées sur la question, n'hésitez pas à m'en faire part.

    « Inventorier son système avec I-NEXAfficher les informations des interfaces réseau »

    Tags Tags : , , , ,
  • Commentaires

    1
    chtinux
    Mardi 14 Juillet 2015 à 08:41

    Bonjour et merci pour votre site et vos scripts qui me permettent de découvrir la puissance du bash !!!

    je suis plutôt "débutant", mais il me semble qu'une solution simple pourrait passer par l'écriture des valeurs dans un fichier qui serait lu au début du script. Ainsi le retour des valeurs à la normale pourrait être repéré.

    2
    Mardi 14 Juillet 2015 à 21:17

    Bonjour chtinux.

    Merci du compliment...

    C'est une possibilité parmi d'autres en effet...

    Après, je dirais que chaque personne a sa manière d'écrire des scripts, certains vont utiliser telle méthode, d'autres une méthode différente...

    Je testerai néanmoins ta proposition...

    Cordialement...

     



    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :