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 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…
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"
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).
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
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 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.