Outils pour utilisateurs

Outils du site


homeserver:olinolinux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
homeserver:olinolinux [2025/08/30 16:25] cyrillehomeserver:olinolinux [2025/08/31 07:21] (Version actuelle) – [Script de test service] cyrille
Ligne 886: Ligne 886:
 @reboot sleep 120 && /home/admin/scripts/server-down-mail.sh > /dev/null 2>&1 @reboot sleep 120 && /home/admin/scripts/server-down-mail.sh > /dev/null 2>&1
  
 +</code>
 +
 +
 +==== Script de test service ====
 +
 +Pour navidrome à la base ;), mais adaptable aux autres services
 +<code | download>
 +/chemin/vers/repertoire/scripts/services-testing.sh navidrome
 +</code>
 +Le script
 +<code | download>#!/bin/bash
 +SERVICE=$1
 +DATE=$(date)
 +CORPS="Alerte serveur XXXX.YY"
 +SUJET_UP="$DATE: Service $1 actif"
 +SUJET_DOWN="$DATE : Service $1 down"
 +SUJET_UP_2="$DATE: Service $1 redémarré"
 +SUJET_DOWN_2="$DATE : Service $1 toujours mort. Redémarrage serveur"
 +DESTINATAIRE="adresse1@XXXX.YY, adresse2@ZZZZ.WW"
 +ADMIN="$DATE : Une tâche d'admin est en cours, on quitte."
 +
 +
 +
 +if (/usr/bin/ps -C apt-get,dpkg,apt,aptitude,yunohost >/dev/null); then
 + # Un processus d'admin est en cours, on quitte
 + echo "$ADMIN" >> "/var/log/etat_service_$SERVICE"
 + exit 1
 +
 +else
 + # Sinon, on teste
 +
 + if (systemctl is-active --quiet "$SERVICE"); then
 + exit 1
 + # Le serice est actif, on passe
 + # echo -e $SUJET_UP
 + # echo "$SUJET_UP" >> "/var/log/etat_service_$SERVICE"
 +         # mail DEBUG
 + # echo  "$CORPS" | mail -s "$SUJET_UP" "$DESTINATAIRE"
 +
 + else
 + # Le service est planté, on inscrit dans le log
 +         # echo -e $SUJET_DOWN
 + # echo "$SUJET_DOWN" >> "/var/log/etat_service_$SERVICE"
 + # On envoie mail alerte service down
 +         echo  "$CORPS" | mail -s "$SUJET_DOWN" "$DESTINATAIRE"
 +         # On tente de redémarrer le service
 +         /usr/bin/systemctl restart  "$SERVICE".service 2> /dev/null
 + # On attend 10 secondes avant nouvel essai
 + sleep 10
 +
 + # On resteste voir si le service a bien été redémarré, sinon on reboote
 + if (systemctl is-active --quiet "$SERVICE"); then
 + # Le service a bien redémarré, on l'inscrit dans les logs
 +     # echo -e $SUJET_UP_2
 + echo "$SUJET_UP_2" >> "/var/log/etat_service_$SERVICE"
 + # mail DEBUG
 +         echo  "$CORPS" | mail -s "$SUJET_UP_2" "$DESTINATAIRE"
 + else
 + # Le service est toujours planté, on inscrit le reboot du serveur dans les logs
 + # echo -e $SUJET_DOWN_2
 + echo "$SUJET_DOWN_2" >> "/var/log/etat_service_$SERVICE"
 +
 + # mail alerte du reboot du serveur
 +         echo  "$CORPS" | mail -s "$SUJET_DOWN_2" "$DESTINATAIRE"
 +
 + # On attend 5 secondes et on redémarre le serveur
 + sleep 5
 + /usr/sbin/reboot
 + fi
 + fi
 +fi
 +</code>
 +
 +A positionner sur cron root, toutes les 10 minutes
 +<code | download>
 +# # Si navidrome plante
 +*/10 * * * * /chemin/vers/repertoire/scripts/services-testing.sh navidrome
 </code> </code>
  
homeserver/olinolinux.1756571107.txt.gz · Dernière modification : de cyrille