111 lines
3.3 KiB
Bash
Executable File
111 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Script de test des notifications ntfy
|
|
# Usage: ./test-notifications.sh
|
|
#
|
|
|
|
# Couleurs
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
# Charger les variables d'environnement
|
|
if [ -f /etc/borgmatic/.env ]; then
|
|
source /etc/borgmatic/.env
|
|
elif [ -f .env ]; then
|
|
source .env
|
|
else
|
|
echo -e "${RED}❌ Fichier .env non trouvé${NC}"
|
|
echo "Créez un fichier .env avec NTFY_URL et NTFY_USER"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$NTFY_URL" ]; then
|
|
echo -e "${RED}❌ NTFY_URL non défini dans .env${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${BLUE}==================================================${NC}"
|
|
echo -e "${BLUE}Test des notifications ntfy${NC}"
|
|
echo -e "${BLUE}==================================================${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}Configuration:${NC}"
|
|
echo " URL: $NTFY_URL"
|
|
echo " Auth: $([ -n "$NTFY_USER" ] && echo "✅ Configurée" || echo "❌ Non configurée")"
|
|
echo ""
|
|
|
|
# Test 1: Notification simple
|
|
echo -e "${YELLOW}📤 Test 1: Notification simple...${NC}"
|
|
RESPONSE=$(curl -s -w "\n%{http_code}" -u "$NTFY_USER" \
|
|
-H "Title: Test Borgmatic" \
|
|
-H "Priority: default" \
|
|
-H "Tags: test" \
|
|
-d "Ceci est un test de notification depuis le script de configuration Borgmatic" \
|
|
"$NTFY_URL")
|
|
|
|
HTTP_CODE=$(echo "$RESPONSE" | tail -1)
|
|
if [ "$HTTP_CODE" -eq 200 ]; then
|
|
echo -e "${GREEN}✅ Notification simple envoyée avec succès${NC}"
|
|
else
|
|
echo -e "${RED}❌ Échec (HTTP $HTTP_CODE)${NC}"
|
|
echo "$RESPONSE"
|
|
exit 1
|
|
fi
|
|
|
|
sleep 2
|
|
|
|
# Test 2: Notification de succès (simule un backup réussi)
|
|
echo -e "${YELLOW}📤 Test 2: Notification de succès de backup...${NC}"
|
|
RESPONSE=$(curl -s -w "\n%{http_code}" -u "$NTFY_USER" \
|
|
-H "Title: ✅ Backup réussi" \
|
|
-H "Priority: default" \
|
|
-H "Tags: white_check_mark,backup" \
|
|
-d "Test de notification de succès
|
|
Archive: test-backup-$(date +%Y%m%d-%H%M)
|
|
Date: $(date '+%Y-%m-%d %H:%M:%S')
|
|
Taille: 15.2 GB" \
|
|
"$NTFY_URL")
|
|
|
|
HTTP_CODE=$(echo "$RESPONSE" | tail -1)
|
|
if [ "$HTTP_CODE" -eq 200 ]; then
|
|
echo -e "${GREEN}✅ Notification de succès envoyée avec succès${NC}"
|
|
else
|
|
echo -e "${RED}❌ Échec (HTTP $HTTP_CODE)${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
sleep 2
|
|
|
|
# Test 3: Notification d'erreur (simule un backup échoué)
|
|
echo -e "${YELLOW}📤 Test 3: Notification d'erreur de backup...${NC}"
|
|
RESPONSE=$(curl -s -w "\n%{http_code}" -u "$NTFY_USER" \
|
|
-H "Title: ❌ Backup échoué" \
|
|
-H "Priority: high" \
|
|
-H "Tags: x,backup,alert" \
|
|
-d "Test de notification d'erreur
|
|
Erreur: Ceci est un test - pas de vraie erreur !
|
|
Date: $(date '+%Y-%m-%d %H:%M:%S')
|
|
Vérifiez les logs: journalctl -u borgmatic.service -n 50" \
|
|
"$NTFY_URL")
|
|
|
|
HTTP_CODE=$(echo "$RESPONSE" | tail -1)
|
|
if [ "$HTTP_CODE" -eq 200 ]; then
|
|
echo -e "${GREEN}✅ Notification d'erreur envoyée avec succès${NC}"
|
|
else
|
|
echo -e "${RED}❌ Échec (HTTP $HTTP_CODE)${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}==================================================${NC}"
|
|
echo -e "${GREEN}✅ Tous les tests de notification ont réussi !${NC}"
|
|
echo -e "${GREEN}==================================================${NC}"
|
|
echo ""
|
|
echo "Vérifiez que vous avez reçu 3 notifications sur votre appareil:"
|
|
echo " 1. Notification de test simple"
|
|
echo " 2. Notification de succès de backup"
|
|
echo " 3. Notification d'erreur de backup"
|
|
echo ""
|