Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions erreurs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
2024-01-15 08:02:45 ERROR Failed to connect to Azure Storage: connection timeout
2024-01-15 08:05:33 ERROR Authentication failed for service account: deploy_svc
2024-01-15 08:07:42 ERROR Database query timeout after 30s on table: audit_logs
2024-01-15 08:09:00 ERROR Max retries exceeded - Azure Storage service unavailable
2024-01-15 08:12:45 ERROR Backup failed: insufficient permissions on /var/backup/azure
1 change: 1 addition & 0 deletions mon-projet/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Mon projet Bash
Empty file added mon-projet/config/settings.txt
Empty file.
22 changes: 22 additions & 0 deletions mon-projet/logs/app.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
2024-01-15 08:00:01 INFO Application started on port 8080
2024-01-15 08:00:05 INFO Connected to Azure SQL Database successfully
2024-01-15 08:01:22 WARNING High memory usage detected: 78%
2024-01-15 08:02:45 ERROR Failed to connect to Azure Storage: connection timeout
2024-01-15 08:03:10 INFO Request processed: GET /api/health [200]
2024-01-15 08:05:33 ERROR Authentication failed for service account: deploy_svc
2024-01-15 08:06:15 WARNING CPU usage spike detected: 92%
2024-01-15 08:07:42 ERROR Database query timeout after 30s on table: audit_logs
2024-01-15 08:08:00 INFO Retry attempt 1/3 for Azure Storage connection
2024-01-15 08:08:30 INFO Retry attempt 2/3 for Azure Storage connection
2024-01-15 08:09:00 ERROR Max retries exceeded - Azure Storage service unavailable
2024-01-15 08:10:15 WARNING Disk space below threshold: 15% remaining on /dev/sda1
2024-01-15 08:11:22 INFO Backup job started: daily-backup-2024-01-15
2024-01-15 08:12:45 ERROR Backup failed: insufficient permissions on /var/backup/azure
2024-01-15 08:14:03 INFO Alert sent to monitoring team via Azure Monitor
2024-01-15 08:15:00 INFO Scheduled maintenance check completed
2024-01-15 08:16:30 WARNING SSL certificate expires in 14 days for api.azuretech.fr
2024-01-15 08:18:00 CRITICAL Database connection pool exhausted — all 20 connections in use
2024-01-15 08:18:55 INFO Kubernetes pod restarted: api-deployment-7d9f8b-xkp2m
2024-01-15 08:19:30 CRITICAL Azure Key Vault unreachable — secrets cannot be retrieved
2024-01-15 08:20:00 INFO Health check passed: all 3 replicas running
2024-01-15 08:21:00 CRITICAL Disk full on /var/log — logging suspended
22 changes: 22 additions & 0 deletions mon-projet/logs/app.log.bak
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
2024-01-15 08:00:01 INFO Application started on port 8080
2024-01-15 08:00:05 INFO Connected to Azure SQL Database successfully
2024-01-15 08:01:22 WARNING High memory usage detected: 78%
2024-01-15 08:02:45 ERROR Failed to connect to Azure Storage: connection timeout
2024-01-15 08:03:10 INFO Request processed: GET /api/health [200]
2024-01-15 08:05:33 ERROR Authentication failed for service account: deploy_svc
2024-01-15 08:06:15 WARNING CPU usage spike detected: 92%
2024-01-15 08:07:42 ERROR Database query timeout after 30s on table: audit_logs
2024-01-15 08:08:00 INFO Retry attempt 1/3 for Azure Storage connection
2024-01-15 08:08:30 INFO Retry attempt 2/3 for Azure Storage connection
2024-01-15 08:09:00 ERROR Max retries exceeded - Azure Storage service unavailable
2024-01-15 08:10:15 WARNING Disk space below threshold: 15% remaining on /dev/sda1
2024-01-15 08:11:22 INFO Backup job started: daily-backup-2024-01-15
2024-01-15 08:12:45 ERROR Backup failed: insufficient permissions on /var/backup/azure
2024-01-15 08:14:03 INFO Alert sent to monitoring team via Azure Monitor
2024-01-15 08:15:00 INFO Scheduled maintenance check completed
2024-01-15 08:16:30 WARNING SSL certificate expires in 14 days for api.azuretech.fr
2024-01-15 08:18:00 CRITICAL Database connection pool exhausted — all 20 connections in use
2024-01-15 08:18:55 INFO Kubernetes pod restarted: api-deployment-7d9f8b-xkp2m
2024-01-15 08:19:30 CRITICAL Azure Key Vault unreachable — secrets cannot be retrieved
2024-01-15 08:20:00 INFO Health check passed: all 3 replicas running
2024-01-15 08:21:00 CRITICAL Disk full on /var/log — logging suspended
16 changes: 16 additions & 0 deletions mon-projet/logs/rapport-20260528-121428.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
RAPPORT D'ANALYSE — 28/05/2026 12:14

--- Compteurs ---
INFO=10 WARNING=4 ERROR=5 CRITICAL=3

--- Incidents critiques ---
2024-01-15 08:18:00 CRITICAL Database connection pool exhausted — all 20 connections in use
2024-01-15 08:19:30 CRITICAL Azure Key Vault unreachable — secrets cannot be retrieved
2024-01-15 08:21:00 CRITICAL Disk full on /var/log — logging suspended

--- Erreurs ---
2024-01-15 08:02:45 ERROR Failed to connect to Azure Storage: connection timeout
2024-01-15 08:05:33 ERROR Authentication failed for service account: deploy_svc
2024-01-15 08:07:42 ERROR Database query timeout after 30s on table: audit_logs
2024-01-15 08:09:00 ERROR Max retries exceeded - Azure Storage service unavailable
2024-01-15 08:12:45 ERROR Backup failed: insufficient permissions on /var/backup/azure
15 changes: 15 additions & 0 deletions mon-projet/src/analyse-niveaux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash
# analyse-niveaux.sh — Compte chaque niveau de log

LOG_FILE="ressources/server.log"

echo "=== Analyse par niveau ==="

for NIVEAU in INFO WARNING ERROR CRITICAL; do
NB=$(grep -c "$NIVEAU" "$LOG_FILE")
echo " $NIVEAU : $NB occurrence(s)"
done

echo "=========================="
echo " TOTAL : $(wc -l < "$LOG_FILE") lignes"

3 changes: 3 additions & 0 deletions mon-projet/src/app.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash


62 changes: 62 additions & 0 deletions mon-projet/src/check-env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/bin/bash
# check-env.sh — Vérifie que l'environnement est prêt pour NexaCloud

set -e


VERT="\033[0;32m"
ROUGE="\033[0;31m"
JAUNE="\033[0;33m"
RESET="\033[0m"

ok() { echo -e "${VERT} [OK]${RESET} $1"; }
warn() { echo -e "${JAUNE} [WARN]${RESET} $1"; }
err() { echo -e "${ROUGE} [ERR]${RESET} $1"; }

# Cette fonction vérifie si une commande est installée
# $1 = nom de la commande | $2 = nom à afficher (optionnel)
verifier_commande() {
local cmd="$1"
local nom="${2:-$1}"
# La commande "command -v" vérifie si un programme existe
# &>/dev/null redirige la sortie pour ne rien afficher
if command -v "$cmd" &>/dev/null; then
ok "$nom installé"
else
err "$nom non trouvé"
fi
}

echo ""
echo "=== Vérification de l'environnement NexaCloud ==="
echo ""

# TODO: appelez verifier_commande pour tester python3, node, npm et git
# Exemple : verifier_commande "python3" "Python"
verifier_commande "python3"
verifier_commande "node"
verifier_commande "npm"
verifier_commande "git"


echo ""

# TODO: vérifiez que ces deux fichiers existent avec [ -f ]
# et affichez ok ou warn selon le résultat
# Fichiers à vérifier : "config.json" et "ressources/server.log"

if [ -f "config.json" ]; then
ok "config.json trouvé"
else
warn "config.json absent"
fi

if [ -f "ressources/server.log" ]; then
ok "server.log trouvé"
else
warn "server.log absent"
fi

echo ""
echo "=== Vérification terminée ==="
echo ""
32 changes: 32 additions & 0 deletions mon-projet/src/check-logs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/bash
# check-logs.sh — Vérifie l'état des logs et alerte si nécessaire

LOG_FILE="ressources/server.log"
SEUIL_ERREURS=3

if [ ! -f "$LOG_FILE" ]; then
echo "ERREUR : le fichier $LOG_FILE n'existe pas."
exit 1
fi

NB_ERREURS=$(grep -c "ERROR" "$LOG_FILE")
NB_CRITIQUES=$(grep -c "CRITICAL" "$LOG_FILE")
NB_WARNINGS=$(grep -c "WARNING" "$LOG_FILE")

echo "=== Analyse de $LOG_FILE ==="
echo " INFO : $(grep -c "INFO" "$LOG_FILE")"
echo " WARNING : $NB_WARNINGS"
echo " ERROR : $NB_ERREURS"
echo " CRITICAL : $NB_CRITIQUES"
echo "==========================="

# Vérifier le seuil d'erreurs
if [ "$NB_CRITIQUES" -gt 0 ]; then
echo "ALERTE CRITIQUE : $NB_CRITIQUES incident(s) critique(s) détecté(s) !"
elif [ "$NB_ERREURS" -gt "$SEUIL_ERREURS" ]; then
echo "ATTENTION : $NB_ERREURS erreurs détectées (seuil : $SEUIL_ERREURS)"
else
echo "OK : les logs sont dans les normes."
fi


25 changes: 25 additions & 0 deletions mon-projet/src/couleurs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash
# couleurs.sh — Tester les fonctions d'affichage

# Les codes couleur sont fournis
VERT="\033[0;32m"
ROUGE="\033[0;31m"
JAUNE="\033[0;33m"
CYAN="\033[0;36m"
RESET="\033[0m"

# Ces fonctions sont déjà écrites — observez leur structure
ok() { echo -e "${VERT}[OK]${RESET} $1"; }
info() { echo -e "${CYAN}[INFO]${RESET} $1"; }

# TODO: écrivez les fonctions warn() et err() sur le même modèle
warn() { echo -e "${JAUNE}[WARN]${RESET} $1"; }
err() { echo -e "${ROUGE}[ERR]${RESET} $1"; }



# Test — ces lignes doivent afficher chacune dans la bonne couleur
ok "Installation réussie"
info "Démarrage du serveur..."
warn "Mémoire basse : 78%"
err "Connexion échouée"
23 changes: 23 additions & 0 deletions mon-projet/src/info.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash
# info.sh — Affiche des informations sur l'environnement

NOM_PROJET="NexaCloud"
VERSION="1.1.0"
LOG_FILE="ressources/server.log"

echo "==============================="
echo " Projet : $NOM_PROJET"
echo " Version : $VERSION"
echo "==============================="

# Vérifier que le fichier de log existe
if [ -f "$LOG_FILE" ]; then
NB_LIGNES=$(wc -l < "$LOG_FILE")
echo " Log : $LOG_FILE ($NB_LIGNES lignes)"
else
echo " Log : fichier introuvable !"
fi

echo "==============================="


58 changes: 58 additions & 0 deletions mon-projet/src/rapport.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/bash
# shellcheck disable=SC2129
# rapport.sh — Génère un rapport complet avec des fonctions

LOG_FILE="${1:-ressources/server.log}"
RAPPORT="mon-projet/logs/rapport-$(date +%Y%m%d-%H%M%S).txt"

# ── Fonctions ──────────────────────────────────────────────────────


afficher_titre() {
echo "==========================================="
echo " $1"
echo "==========================================="
}

compter_niveau() {
local niveau="$1"
local fichier="$2"
grep -c "$niveau" "$fichier" 2>/dev/null || echo 0
}

ecrire_section() {
local titre="$1"
local contenu="$2"
echo "" >> "$RAPPORT"
echo "--- $titre ---" >> "$RAPPORT"
echo "$contenu" >> "$RAPPORT"
}

# ── Script principal ───────────────────────────────────────────────

if [ ! -f "$LOG_FILE" ]; then
echo "Fichier introuvable : $LOG_FILE"
exit 1
fi

afficher_titre "RAPPORT D'ANALYSE — $(date '+%d/%m/%Y %H:%M')"

INFO=$(compter_niveau "INFO" "$LOG_FILE")
WARNING=$(compter_niveau "WARNING" "$LOG_FILE")
ERROR=$(compter_niveau "ERROR" "$LOG_FILE")
CRITICAL=$(compter_niveau "CRITICAL" "$LOG_FILE")

echo " INFO : $INFO"
echo " WARNING : $WARNING"
echo " ERROR : $ERROR"
echo " CRITICAL : $CRITICAL"

# Écrire le rapport dans un fichier
echo "RAPPORT D'ANALYSE — $(date '+%d/%m/%Y %H:%M')" > "$RAPPORT"
ecrire_section "Compteurs" "INFO=$INFO WARNING=$WARNING ERROR=$ERROR CRITICAL=$CRITICAL"
ecrire_section "Incidents critiques" "$(grep 'CRITICAL' "$LOG_FILE")"
ecrire_section "Erreurs" "$(grep 'ERROR' "$LOG_FILE")"

echo ""
echo "Rapport sauvegardé : $RAPPORT"

9 changes: 9 additions & 0 deletions rapport.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
=== RAPPORT DE LOGS ===
Nombre total de lignes :
22
Nombre d'erreurs :
5
Nombre warnings :
4
Nombre de critiques :
3
Loading
Loading