Devmind.
Menu

Apprendre, à votre rythme

Tous les cursus sont accessibles sans compte.

Chapitre 12 / Notion

Liens durs, symboliques et inodes

« Le disque est plein mais du ne voit rien » (fichier supprimé encore ouvert !), backup par liens durs, déploiements atomiques par symlink : les liens expliquent les m…

◷ 16 minutesTravail sur votre machine

Prérequis (cursus dev) : naviguer, manipuler les fichiers.

Pourquoi

« Le disque est plein mais du ne voit rien » (fichier supprimé encore ouvert !), backup par liens durs, déploiements atomiques par symlink : les liens expliquent les mystères et outillent les pros.

Concepts

  • inode : la fiche du fichier (métadonnées + blocs). Le nom n'est qu'une entrée de dossier qui pointe vers l'inode. ls -i montre le numéro.
  • Lien dur : deuxième nom pour le MÊME inode (même système de fichiers !). Supprimer un nom ne libère que si c'est le dernier + aucun process ouvert. D'où : df plein + du vide = fichier supprimé mais ouvert (lsof | grep deleted !).
  • Lien symbolique : petit fichier qui contient un chemin (franchit les filesystems, pointe vers du vide possible = lien cassé). ln -s cible lien, chemins relatifs préférables (déplaçable).
  • Déploiement atomique : releases/2026-01-02/ + current -> releases/... : bascule = un ln -sfn (atomique !), rollback = repointer. Zéro downtime de fichiers.

Exemple : comprendre et déployer

ls -i fichier && ln fichier dur && ls -i fichier dur  # même inode !
lsof | grep deleted          # les fantômes qui retiennent du disque
ln -sfn releases/v2 current  # bascule atomique (-f -n : remplace le lien, pas la cible !)

Cas réel

Log supprimé « pour faire de la place », disque toujours plein : le daemon l'avait ouvert (17 Go retenus, invisibles à du). lsof | grep deleted → restart du service → 17 Go libérés. Depuis : rotation (jamais de rm sur un log ouvert !) + monitoring inode aussi (df -i : inodes épuisés = même panne, autre compteur).

Pièges

  • ln -sfn sans -n sur un lien vers dossier : crée le lien DEDANS au lieu de remplacer. -n toujours avec -f.
  • Liens symboliques absolus (/opt/app/...) : cassés après déplacement/chroot. Relatifs préférables.
  • Backup qui suit les symlinks (tar -h ?) : boucle infinie possible (lien vers parent !). Savoir ce qu'on archive.

À retenir

inode = le fichier, noms = pointeurs ; supprimé+ouvert = fantôme (lsof) ; deploys par symlink atomique.

Pas de correction en ligneConfrontez votre code aux résultats attendus du cours.