193 lines
5.2 KiB
Markdown
Executable File
193 lines
5.2 KiB
Markdown
Executable File
# 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 .
|
|
```
|