From 4aaed529ea18d0d98218a5fa02b93d705e2d1354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Sun, 8 Mar 2026 23:21:17 +0100 Subject: [PATCH] activation de ntfy --- servers/linux/config_adminSys.sh | 21 +++++++++ servers/linux/config_adminSys.sh.sha256 | 2 +- servers/linux/sys_check.sh | 57 +++++++++++++++++++------ servers/linux/sys_check.sh.sha256 | 2 +- 4 files changed, 68 insertions(+), 14 deletions(-) diff --git a/servers/linux/config_adminSys.sh b/servers/linux/config_adminSys.sh index 953a3da..94c84e6 100755 --- a/servers/linux/config_adminSys.sh +++ b/servers/linux/config_adminSys.sh @@ -20,6 +20,11 @@ DEFAULT_SMTP_USER="alerte@exemple.fr" DEFAULT_DEST_EMAIL="admin+${HOSTNAME}@exemple.fr" SUBJECT_PREFIX="[$HOSTNAME]" +# Valeurs "Fallback" NTFY +DEFAULT_NTFY_SERVER="https://ntfy.sh" +DEFAULT_NTFY_TOPIC="" +DEFAULT_NTFY_TOKEN="" + # Tentative d'extraction des valeurs actuelles si le fichier existe if [ -f "$MSMTP_CONF" ]; then CURRENT_HOST=$(grep -E "^host[[:space:]]+" "$MSMTP_CONF" | awk '{print $2}') @@ -32,6 +37,15 @@ if [ -f "$MSMTP_CONF" ]; then [ -n "$CURRENT_USER" ] && DEFAULT_SMTP_USER="$CURRENT_USER" fi +# Tentative d'extraction NTFY si le fichier global existe déjà +if [ -f "$GLOBAL_CONF" ]; then + source "$GLOBAL_CONF" + [ -n "$NTFY_SERVER" ] && DEFAULT_NTFY_SERVER="$NTFY_SERVER" + [ -n "$NTFY_TOPIC" ] && DEFAULT_NTFY_TOPIC="$NTFY_TOPIC" + [ -n "$NTFY_TOKEN" ] && DEFAULT_NTFY_TOKEN="$NTFY_TOKEN" +fi + + echo "==========================================================" echo " VÉRIFICATION SMTP & DÉPLOIEMENT - ${HOSTNAME}" echo "==========================================================" @@ -46,11 +60,18 @@ prompt_value() { } # Collecte interactive +echo "--- Configuration Mail ---" prompt_value "SMTP_HOST" "Serveur SMTP" "$DEFAULT_SMTP_HOST" prompt_value "SMTP_PORT" "Port SMTP" "$DEFAULT_SMTP_PORT" prompt_value "SMTP_USER" "Utilisateur SMTP" "$DEFAULT_SMTP_USER" prompt_value "DEST_EMAIL" "Email de destination" "$DEFAULT_DEST_EMAIL" +echo -e "\n--- Configuration ntfy.sh (Optionnel) ---" +prompt_value "NTFY_SERVER" "Serveur ntfy" "$DEFAULT_NTFY_SERVER" +prompt_value "NTFY_TOPIC" "Topic ntfy (laisser vide pour désactiver)" "$DEFAULT_NTFY_TOPIC" +prompt_value "NTFY_TOKEN" "Token ntfy (laisser vide si aucun)" "$DEFAULT_NTFY_TOKEN" + + # --- 2. INSTALLATION INITIALE --- DEBIAN_FRONTEND=noninteractive apt update DEBIAN_FRONTEND=noninteractive apt install -y msmtp msmtp-mta bsd-mailx diff --git a/servers/linux/config_adminSys.sh.sha256 b/servers/linux/config_adminSys.sh.sha256 index 3e0f87c..8c7e8f9 100644 --- a/servers/linux/config_adminSys.sh.sha256 +++ b/servers/linux/config_adminSys.sh.sha256 @@ -1 +1 @@ -88abb1fc69eec9bb5436dc7e3ce487a5b1ec5564653ca1629d752c79a1780197 config_adminSys.sh +5a3d38a862d5a25e9078914401bb896eac96ed8a9238a1632f76ea668caebfad config_adminSys.sh diff --git a/servers/linux/sys_check.sh b/servers/linux/sys_check.sh index 9558909..9ec55da 100644 --- a/servers/linux/sys_check.sh +++ b/servers/linux/sys_check.sh @@ -3,6 +3,7 @@ # # 20260308 - # ajout de l'autoupdate +# ajout du support ntfy.sh (prioritaire sur le mail) # --- CONFIGURATION --- THRESHOLD=80 @@ -14,8 +15,24 @@ HOST=$(hostname) SCRIPT_PATH="$0" SCRIPT_NAME=$(basename "$SCRIPT_PATH") -# On envoie à 'root', le système fera la redirection grâce aux aliases -DEST="root" + +# --- CHARGEMENT DE LA CONFIGURATION (Style msmtp) --- +# On cherche d'abord dans le home de l'utilisateur, puis au niveau système +CONF_USER="$HOME/.sys_check.conf" +CONF_SYSTEM="/etc/sys_check.conf" + +if [ -f "$CONF_USER" ]; then + source "$CONF_USER" +elif [ -f "$CONF_SYSTEM" ]; then + source "$CONF_SYSTEM" +fi + +# Initialisation des variables de notification si non définies dans les fichiers de conf +DEST="${DEST:-root}" +NTFY_SERVER="${NTFY_SERVER}" +NTFY_TOPIC="${NTFY_TOPIC}" +NTFY_TOKEN="${NTFY_TOKEN}" + REPORT="" ALERT=false @@ -222,17 +239,33 @@ add_to_report "---" # ------------------------------------------------ -# ENVOI MAIL +# --- ENVOI DE L'ALERTE --- # ------------------------------------------------ if [ "$ALERT" = true ]; then SUBJECT="🔴 ALERTE SERVEUR [$HOST] - $(date +'%H:%M')" - - # Construction du corps du mail avec un header propre - MAIL_BODY="Bonjour,\n\nUne ou plusieurs anomalies ont été détectées sur le serveur : $HOST\n" - MAIL_BODY="$MAIL_BODY\n------------------------------------------------\n" - MAIL_BODY="$MAIL_BODY$REPORT" - MAIL_BODY="$MAIL_BODY\n------------------------------------------------\n" - MAIL_BODY="$MAIL_BODY\nDate du rapport : $(date)" - - echo -e "$MAIL_BODY" | mail -s "$SUBJECT" "$DEST" + + if [ -z "$NTFY_TOPIC" ]; then + # Construction du corps du mail avec un header propre + MAIL_BODY="Bonjour,\n\nUne ou plusieurs anomalies ont été détectées sur le serveur : $HOST\n" + MAIL_BODY="$MAIL_BODY\n------------------------------------------------\n" + MAIL_BODY="$MAIL_BODY$REPORT" + MAIL_BODY="$MAIL_BODY\n------------------------------------------------\n" + MAIL_BODY="$MAIL_BODY\nDate du rapport : $(date)" + + echo -e "$MAIL_BODY" | mail -s "$SUBJECT" "$DEST" + else + # Mode NTFY + AUTH_OPT=() + [ -n "$NTFY_TOKEN" ] && AUTH_OPT=(-H "Authorization: Bearer $NTFY_TOKEN") + + # Nettoyage du rapport pour le format push + CLEAN_REPORT=$(echo -e "$REPORT" | sed '/^---$/d') + + curl -s "${AUTH_OPT[@]}" \ + -H "Title: $SUBJECT" \ + -H "Priority: high" \ + -H "Tags: warning,server" \ + -d "$CLEAN_REPORT" \ + "$NTFY_SERVER/$NTFY_TOPIC" > /dev/null + fi fi \ No newline at end of file diff --git a/servers/linux/sys_check.sh.sha256 b/servers/linux/sys_check.sh.sha256 index ab68405..5fdf64c 100644 --- a/servers/linux/sys_check.sh.sha256 +++ b/servers/linux/sys_check.sh.sha256 @@ -1 +1 @@ -03b92b133fc4694f78f1d17be8ed070a8a72d09ca6f381e41790c7c5042bbc03 sys_check.sh +2e123bfc0e0fee37f1964b6bf037e0a179623b56b3c969a90e69410f346c2f93 sys_check.sh