# Changelog - script_test.sh ## Version 1.0.1 - Améliorations demandées ### Nouvelles fonctionnalités #### 1. Wake-on-LAN pour cartes Ethernet - **Fichier** : [script_test.sh:546-555](script_test.sh#L546-L555) - Détection automatique du support Wake-on-LAN via `ethtool` - Ajout du champ `wake_on_lan` (true/false/null) dans les informations réseau - Vérifie si la carte supporte le "magic packet" (flag 'g') ```json { "name": "eth0", "type": "ethernet", "wake_on_lan": true } ``` #### 2. Statistiques RAM détaillées - **Fichier** : [script_test.sh:298-303](script_test.sh#L298-L303) et [script_test.sh:367-385](script_test.sh#L367-L385) - Ajout de la RAM utilisée (`used_mb`) - Ajout de la RAM libre (`free_mb`) - Ajout de la RAM partagée (`shared_mb`) - inclut tmpfs, vidéo partagée, etc. - Distinction entre RAM physique totale et RAM disponible dans l'OS ```json { "total_mb": 16384, "used_mb": 8192, "free_mb": 7500, "shared_mb": 692 } ``` #### 3. Test réseau iperf3 vers 10.0.1.97 - **Fichier** : [script_test.sh:675-726](script_test.sh#L675-L726) - Test de connectivité préalable avec `ping` - Test upload (client → serveur) pendant 10 secondes - Test download (serveur → client avec `-R`) pendant 10 secondes - Mesure du ping moyen (5 paquets) - Calcul du score réseau basé sur la moyenne upload/download **Prérequis** : Le serveur 10.0.1.97 doit avoir `iperf3 -s` en cours d'exécution. ```bash # Sur le serveur 10.0.1.97 iperf3 -s ``` ```json { "upload_mbps": 940.50, "download_mbps": 950.20, "ping_ms": 0.5, "score": 94.54 } ``` #### 4. Données SMART de vieillissement des disques - **Fichier** : [script_test.sh:492-602](script_test.sh#L492-L602) - Extraction complète des données SMART pour chaque disque via `smartctl` - **Indicateurs de santé globale** : - `health_status` : PASSED/FAILED (test auto-diagnostic SMART) - `temperature_celsius` : Température actuelle du disque - **Indicateurs de vieillissement** : - `power_on_hours` : Heures de fonctionnement totales - `power_cycle_count` : Nombre de démarrages/arrêts - `reallocated_sectors` : Secteurs défectueux réalloués (⚠️ signe de défaillance) - `pending_sectors` : Secteurs en attente de réallocation (⚠️ attention) - `udma_crc_errors` : Erreurs de transmission (câble/interface) - **Pour SSD uniquement** : - `wear_leveling_count` : Compteur d'usure des cellules - `total_lbas_written` : Volume total de données écrites **Interprétation** : - ✅ `health_status: "PASSED"` + `reallocated_sectors: 0` = Disque sain - ⚠️ `reallocated_sectors > 0` = Début de défaillance, surveiller - 🔴 `pending_sectors > 0` = Défaillance imminente, sauvegarder immédiatement - 🔴 `health_status: "FAILED"` = Disque défaillant, remplacer ```json { "device": "sda", "model": "Samsung SSD 970 EVO Plus 500GB", "type": "ssd", "smart": { "health_status": "PASSED", "power_on_hours": 12543, "power_cycle_count": 1876, "temperature_celsius": 42, "reallocated_sectors": 0, "pending_sectors": 0, "udma_crc_errors": 0, "wear_leveling_count": 97, "total_lbas_written": 45678901234 } } ``` #### 5. Correction du calcul global_score - **Fichier** : [script_test.sh:732-760](script_test.sh#L732-L760) - Le score global n'inclut **que** CPU, RAM et Disk (pas réseau, pas GPU) - Nouvelle pondération : - **CPU** : 40% - **RAM** : 30% - **Disk** : 30% - Normalisation automatique si certains benchmarks sont manquants - Score sur 100 ### Corrections - **PATH Fix** : Ajout de `/usr/sbin` et `/sbin` au PATH ([script_test.sh:30](script_test.sh#L30)) - Résout le problème de détection de `dmidecode`, `smartctl`, `ethtool` ### Format JSON mis à jour ```json { "hardware": { "ram": { "total_mb": 16384, "used_mb": 8192, "free_mb": 7500, "shared_mb": 692, "slots_total": 4, "slots_used": 2, "ecc": false, "layout": [...] }, "network": [ { "name": "eth0", "type": "ethernet", "mac": "00:11:22:33:44:55", "ip_address": "10.0.1.100", "speed_mbps": 1000, "wake_on_lan": true } ] }, "benchmarks": { "cpu": { "events_per_sec": 5234.89, "duration_s": 10.0, "score": 52.35 }, "memory": { "throughput_mib_s": 15234.5, "score": 76.17 }, "disk": { "read_mb_s": 450.0, "write_mb_s": 420.0, "iops_read": 112000, "iops_write": 105000, "latency_ms": 0.08, "score": 43.50 }, "network": { "upload_mbps": 940.5, "download_mbps": 950.2, "ping_ms": 0.5, "score": 94.54 }, "gpu": null, "global_score": 57.00 } } ``` ### Notes d'utilisation 1. **Serveur iperf3** : Assurez-vous que `iperf3 -s` tourne sur 10.0.1.97 avant de lancer le script 2. **Permissions** : Le script nécessite `sudo` pour dmidecode, smartctl, ethtool 3. **Durée** : Le script prend environ 3-4 minutes (10s iperf3 upload + 10s download + 30s disk) ### Commande de test ```bash # Lancer le serveur iperf3 sur 10.0.1.97 ssh user@10.0.1.97 'iperf3 -s -D' # Lancer le script de test sudo bash script_test.sh # Voir le résultat cat result.json | jq . ```