Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Outils

httm

httm permet de faciliter l'utilisation de zfs pour avoir une visualisation de ce qui s'est passé dans le temps, au niveau des datasets.

Parmis les différentes possibilitées, les 2 cas d'usage les plus basiques sont ci dessous.

Trouver les versions d'un fichier

Supposons notre stack /srv/docker/victim.org vue sur la page Snapshots, pour visualiser toutes les modifications de docker-compose.yml dans le temps, nous pouvons faire:

 $  /s/d/victim.org  httm docker-compose.yml
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Sun Nov 02 17:04:30 2025 UTC  2.9 KiB  "/srv/docker/victim.org/.zfs/snapshot/zrepl_20251225_060837_000/docker-compose.yml"
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Tue Dec 30 09:03:29 2025 UTC  2.9 KiB  "/srv/docker/victim.org/docker-compose.yml"
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Et observer que ce fichier a été modifié depuis le dernier snapshot!

Trouver les fichiers supprimés

Exemple avec une stack netdata:

 $  /s/d/_base  httm -n --no-live -d -R . | head -n10
⠠
/srv/docker/_base/.zfs/snapshot/2023-07-10-00-00-05/netdata/cache/dbengine-tier2/datafile-1-0000000049.ndf
/srv/docker/_base/.zfs/snapshot/2023-07-10-00-00-05/netdata/cache/dbengine-tier2/datafile-1-0000000050.ndf
/srv/docker/_base/.zfs/snapshot/2023-07-10-00-00-05/netdata/cache/dbengine-tier2/datafile-1-0000000051.ndf
/srv/docker/_base/.zfs/snapshot/2023-07-10-00-00-05/netdata/cache/dbengine-tier2/datafile-1-0000000052.ndf
/srv/docker/_base/.zfs/snapshot/2023-07-10-00-00-05/netdata/cache/dbengine-tier2/datafile-1-0000000053.ndf
/srv/docker/_base/.zfs/snapshot/2023-07-10-00-00-05/netdata/cache/dbengine-tier2/datafile-1-0000000054.ndf
/srv/docker/_base/.zfs/snapshot/2023-07-10-00-00-05/netdata/cache/dbengine-tier2/datafile-1-0000000055.ndf
/srv/docker/_base/.zfs/snapshot/2023-07-10-00-00-05/netdata/cache/dbengine-tier2/datafile-1-0000000056.ndf
/srv/docker/_base/.zfs/snapshot/2023-07-10-00-00-05/netdata/cache/dbengine-tier2/datafile-1-0000000057.ndf
/srv/docker/_base/.zfs/snapshot/2023-07-11-00-00-02/netdata/cache/dbengine-tier2/datafile-1-0000000057.ndf

zfs-prune-snapshots

zfs-prune-snapshots permet de gérer le nombre de snapshots à conserver.

zrepl

zrepl permet de répliquer des datasets entre plusieurs serveurs, que ce soit en mode push ou pull.

Même s'il peut être difficile de démarrer avec zrepl (j'ai trouvé la documentation peu claire), le résultat est vraiment convaincant.