# 7.1 - Espace disque avec lsblk, df et du

## Voir les disques et partitions

```bash
lsblk
lsblk -f
lsblk -o NAME,SIZE,FSTYPE,FSVER,LABEL,UUID,MOUNTPOINTS
sudo blkid
```

`lsblk` affiche les périphériques bloc et leur hiérarchie. `lsblk -f` ajoute le système de fichiers, l'étiquette, l'UUID et le point de montage.

## Espace des systèmes de fichiers

```bash
df -h
df -hT
df -i
```

- `df -hT` affiche la taille, l'espace utilisé et le type de système de fichiers.
- `df -i` contrôle les inodes. Un système peut refuser de nouveaux fichiers même s'il reste des gigaoctets, lorsque tous les inodes sont utilisés.

Limiter la sortie aux systèmes locaux courants :

```bash
df -h -x tmpfs -x devtmpfs
```

## Taille des dossiers

```bash
du -sh dossier
du -h --max-depth=1 /var | sort -h
sudo du -xhd1 /var | sort -h
```

`-x` évite de traverser d'autres systèmes de fichiers montés. Sur un serveur, cette option limite les surprises.

Trouver de gros fichiers dans un emplacement précis :

```bash
sudo find /var -xdev -type f -size +500M -printf '%s %p\n' | sort -n
```

Afficher les plus gros éléments de façon lisible avec GNU `du` :

```bash
sudo du -ahx /var | sort -h | tail -n 30
```

Cette commande peut être longue et solliciter le stockage.

## Fichier supprimé mais encore ouvert

Si `df` indique beaucoup plus d'espace utilisé que `du`, un processus peut conserver un fichier supprimé ouvert :

```bash
sudo lsof +L1
```

Redémarrer proprement le service concerné libère généralement l'espace. Ne videz pas arbitrairement un descripteur de fichier dans `/proc`.

## Utilisation interactive

Si `ncdu` est installé :

```bash
sudo ncdu -x /var
```

## Réflexes avant de nettoyer

1. Identifier le système plein avec `df -hT` et `df -i`.
2. Localiser la consommation avec `du -x`.
3. Distinguer données, cache, journaux et fichiers ouverts supprimés.
4. Utiliser la procédure de nettoyage propre à l'application.
5. Vérifier le résultat et la santé du service.

Ne supprimez pas manuellement des fichiers inconnus sous `/var/lib`, qui contient souvent des bases de données et l'état des applications.