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
25 changes: 25 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,18 +165,43 @@ Travaillez avec le fichier `ressources/server.log` et répondez aux questions su

```bash
# 1. Combien de lignes contient server.log ?
22

# 2. Affichez uniquement les 5 premières lignes
head -n 5 server.log
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]


# 3. Affichez uniquement les 3 dernières lignes

$ tail -n 3 server.log
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

# 4. Combien de lignes contiennent le mot ERROR ?
5

# 5. Affichez toutes les lignes WARNING
$ grep -i "WARNING" server.log
2024-01-15 08:01:22 WARNING High memory usage detected: 78%
2024-01-15 08:06:15 WARNING CPU usage spike detected: 92%
2024-01-15 08:10:15 WARNING Disk space below threshold: 15% remaining on /dev/sda1
2024-01-15 08:16:30 WARNING SSL certificate expires in 14 days for api.azuretech.fr

# 6. Affichez toutes les lignes CRITICAL

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


# 7. Combien d'erreurs ET de critiques y a-t-il au total ?
8
# (indice : grep -E "ERROR|CRITICAL")
```

Expand Down
1 change: 1 addition & 0 deletions config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
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
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-135825.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
RAPPORT D'ANALYSE — 28/05/2026 13:58

--- 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
Empty file added mon-projet/rapport.txt
Empty file.
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"
50 changes: 50 additions & 0 deletions mon-projet/src/check-env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/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"; }

verifier_commande() {
local cmd="$1"
local nom="${2:-$1}"
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 ""

verifier_commande "python3" "Python"
verifier_commande "node" "Node.js"
verifier_commande "npm" "npm"
verifier_commande "git" "Git"

echo ""

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

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

echo ""
echo "=== Vérification terminée ==="
echo ""
28 changes: 28 additions & 0 deletions mon-projet/src/check-logs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/bash
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
18 changes: 18 additions & 0 deletions mon-projet/src/couleurs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash
# couleurs.sh — Tester les fonctions d'affichage

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

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

ok "Installation réussie"
info "Démarrage du serveur..."
warn "Mémoire basse : 78%"
err "Connexion échouée"
21 changes: 21 additions & 0 deletions mon-projet/src/info.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/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 "==============================="
56 changes: 56 additions & 0 deletions mon-projet/src/rapport.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/bin/bash
# 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 ""
echo "--- $titre ---"
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"
10 changes: 10 additions & 0 deletions rapport.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
=== RAPPORT DE LOGS ===
Nombre total de lignes:
Nombre total de lignes: 22
Le nombre d'erreurs: 5
Le nombre de warnings:
Le nombre de warnings:
Le nombre de warnings: 0
Le nombre de CRTIQUES: 0
le nombre de warring=4
le nombre de critiques=3
Loading
Loading