Alerte service HS sur Scribe

Bonjour à tous,
Je cherche à mettre une alerte quand un service sur le scribe tombe, à l’occurence controle-vnc qui interdit les connexions aux postes Windows.

J’ai récupéré le code du diagnose et je voudrais m’en inspirer :

len_pf=26

TestService() {
printf ".  %${len_pf}s => " "$1"
CMD="/usr/bin/tcpcheck 2 $2 2> /dev/null | grep -q \" alive\""
if [ ! "$3" = "" ]; then
    CreoleRun "$CMD" "$3"
    ret=$?
else
    CreoleRun "$CMD"
    ret=$?
fi
if [ $ret -eq 0 ]
then
   EchoVert "Ok"
   return 0
else
   EchoRouge "Erreur"
   return 1
fi
} 

Je suis sûr que des eoliens devraient pouvoir m’aider :yum: car là, je suis un peu perdu.

Donc, si j’ai le service en erreur, j’envoie un mail (et une notification sur mon téléphone avec ntfy) et je relance le service…

Merci :pray:

Salut Cédric !
Au final, si on dépile toutes les librairies, le test se contente de vérifier si le port TCP utilisé pour le services controle-vnc (8789) est ouvert.
Le test minimaliste serait :
if $(tcpcheck 2 127.0.0.1:8789 >/dev/null);then echo "port 8798 OK"; else echo "port 8798 KO";fi

Concernant l’envoi d’un mail, mutt est le plus robuste et permet même d’ajouter un fichier en pièce jointe à l’aide de l’option « -a ». Si la messagerie est correctement configurée sur le serveur, la commande suivante suffit :
echo "Corps du message" | mutt -s "Sujet du message" -c "adresse@mail.fr"

1 « J'aime »

Concernant l’exécution du script, il existe plusieurs solution plus ou moins complexes…
Genre : Gestion des tâches planifiées eole-schedule [Installation et mise en œuvre du module AmonEcole ]
Ça peut même se faire à l’aide d’un agent Zéphir (mais c’est pas documenté) !

Pour ton cas d’usage, je pense que poser un script exécutable dans /etc/cron.daily/ sera amplement suffisant sachant que les scripts présents dans ce répertoire sont exécutés tous les jours à 6h25 (cf. /etc/crontab).

1 « J'aime »

Super, merci @joel.cuissinat .

J’ai testé l’envoi de courriel, cela fonctionne. Le tcpcheck fonctionne aussi, j’ai plus qu’à mettre tout cela en place avec le crontab.

Je reposte d’ici quelques jours le script :tada:

J’ai déplacé ce sujet de EOLE 3 vers EOLE 2 puisque ca concerne le module Scribe :wink:

Voilà donc mon script, qui fonctionne quand il n’y a pas de problème ; j’espère qu’il relancera bien le service si controle-vnc tombe :slight_smile:

Créer un fichier Relancer_Ctrl_VNC dans /etc/cron.daily/ et le rendre executable (chmod +x). Voici le contenu :

#!/bin/sh

if $(tcpcheck 2 127.0.0.1:8789 >/dev/null);
    then
        echo "Cela fonctionne !" | mutt -s "Control VNC est ok !" -c "adresse@mail.fr";
        curl -d "Controle VNC est ok 😀" ntfy.sh/XXYYZZ ;

else
    echo "Aïe, problème sur le service Controle-VNC, je relance le service !" | mutt -s "Control VNC est HS !" -c "adresse@mail.fr";
    curl -d "Controle VNC est HS :(, je relance le service" ntfy.sh/XXYYZZ ;
    service controle-vnc restart;
fi

Bien sûr, on peut simplifier quand tout se passe bien :wink:
ntfy.sh est un super service pour envoyer des notifications. Créez vous un abonnement depuis l’appli et remplacer XXYYZZ par le nom de votre abonnement.