# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Projet Script bash one-shot d'inventaire disques (HDD/SSD/NVMe) pour systèmes Debian/Proxmox. Exécuté manuellement une seule fois par machine — pas de cron, pas de daemon, pas de service. ## Lancement ```bash # Local bash inventaire_hdd.sh # À distance (via Gitea) curl -fsSL https:////mes_hdd/raw/branch/main/inventaire_hdd.sh | bash ``` ## Architecture du script `inventaire_hdd.sh` suit ce pipeline : 1. Détection machine (hostname, IP via `ip route`) 2. Listage des disques entiers via `lsblk -d -o NAME,TYPE` 3. Pour chaque disque : modèle/série via `lsblk` puis `smartctl -i` en fallback 4. État SMART via `smartctl -H` + `smartctl -A` (traduit en français simple) 5. Type (HDD/SSD/NVMe) via `/sys/block//queue/rotational` 6. Montage/espace via `df -h` 7. Lien `by-id` via `/dev/disk/by-id/` 8. Génération rapport Markdown → `hdd.md` dans le répertoire du script (ou `pwd` si exécuté via pipe) ## Publication MQTT (à implémenter) Le script doit aussi publier un JSON retenu vers : - broker : `10.0.0.3:1883` (sans auth) - topic : `hdd/inventaire/` - flag retain (`mosquitto_pub -r`) Format JSON attendu : voir `consigne.hd` section "Format de message conseillé". ## Prérequis système - `smartmontools` (smartctl) — optionnel, géré gracieusement - `util-linux` (lsblk) - `mosquitto-clients` (mosquitto_pub) — pour la publication MQTT - `coreutils` (df, hostname), `iproute2` (ip) ## Robustesse Le script doit continuer l'inventaire même si un disque échoue, si smartctl est absent, ou si le système est une VM sans accès SMART. Chaque erreur est captée localement (pas de `set -e`).