Sign inSign up

htdemony/duperemove

By htdemony

•Updated 8 months ago

Duperemove for Synology - Permet de dédupliquer les fichiers sur NAS Synology DSXXX+

Image
Operating systems
0

2.4K

htdemony/duperemove repository overview

Cette image OCI est une simple image Alpine (par défaut - plus légère) ou Debian avec le package duperemove. Permet de lancer une déduplication des fichiers contenus dans un système de fichiers btrfs pour un NAS de type Synology ne contenant pas duperemove directement.

Cette image a été testée sur un NAS Synology DS920+. Les NAS supportés sont les NAS supportant bien évidemment Docker. Il s'agit des NAS dont le numéro de modèle finit par un plus.

⁠Utilisation de l'image

⁠Cette image permet de lancer la commande bash contenant duperemove en mode interactif

Pour cela, nous devons "monter" un ou des volumes d'un même système de fichiers.

Prenons l'exemple du répertoire photo généré par l'application pour smartphone "DS photo" et un répertoire partagé où tous les utilisateurs peuvent partager des fichiers.

Prérequis, nous devons lancer les commandes en tant que root. Il faut se connecter par ssh (via putty, MobaXterm ou encore un terminal Linux ou Windows) sur le NAS puis lancer la commande sudo -i pour devenir root (l'admin du serveur NAS).

Nous lançons la commande suivante pour ouvrir un bash dans le conteneur.

sudo -i
docker run --privileged --rm --name duperemove -v /volume1/photo/:/mnt/workdir1 -v /volume1/share/photo/:/mnt/workdir2 -ti htdemony/duperemove
⁠Rappel:
--privileged lance le conteneur avec des privilèges, nécessaire pour accéder au filesystem btrfs
--rm supprime le conteneur une fois sorti du bash
--name donne un nom au conteneur (optionnel car le conteneur sera supprimé avec l'option --rm)
-v monte un volume de l'hôte dans le conteneur
-t mode terminal
-i interactif
⁠Une fois dans le terminal, lancer l'une des commandes suivantes en mettant autant de répertoires à analyser que souhaité:

Pour tester:

duperemove -hr /mnt/workdir1 /mnt/workdir2

Une fois que tout est OK, on lance la commande suivante:

duperemove -dhr /mnt/workdir1 /mnt/workdir2
⁠Rappel:
-r walk directories recursively
-d perform de-duplication
-h displays human readable information
⁠En une seule ligne:
sudo -i
docker run --privileged --rm --name duperemove -v /volume1/photo/:/mnt/workdir1 -v /volume1/share/photo/:/mnt/workdir2 -ti htdemony/duperemove duperemove -dhr /mnt/workdir1 /mnt/workdir2
⁠Possibilité de ne traiter que le répertoire courant:
docker run --privileged --rm --name duperemove -v $PWD:/mnt/workdir -ti htdemony/duperemove duperemove -dhr /mnt/workdir

⁠Avis de non-responsabilité (Disclaimer)

Cette image est fournie telle quelle. Je ne suis en aucun cas responsable d'une mauvaise manipulation de votre part.

⁠Cette image a été contrôlée le 10/08/2024 (2025-10-01) via trivy

docker run --rm -v trivy-cache:/root/.cache/ -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy:latest image htdemony/duperemove
2025-09-30T23:27:46Z    INFO    [vuln] Vulnerability scanning is enabled
2025-09-30T23:27:46Z    INFO    [secret] Secret scanning is enabled
2025-09-30T23:27:46Z    INFO    [secret] If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2025-09-30T23:27:46Z    INFO    [secret] Please see https://trivy.dev/v0.67/docs/scanner/secret#recommendation for faster secret detection
2025-09-30T23:27:46Z    INFO    Detected OS     family="alpine" version="3.22.1"
2025-09-30T23:27:46Z    INFO    [alpine] Detecting vulnerabilities...   os_version="3.22" repository="3.22" pkg_num=32
2025-09-30T23:27:47Z    INFO    Number of language-specific files       num=0

Report Summary

┌────────────────────────────────────────────┬────────┬─────────────────┬─────────┐
│                   Target                   │  Type  │ Vulnerabilities │ Secrets │
├────────────────────────────────────────────┼────────┼─────────────────┼─────────┤
│ htdemony/duperemove:alpine (alpine 3.22.1) │ alpine │        0        │    -    │
└────────────────────────────────────────────┴────────┴─────────────────┴─────────┘
Legend:
- '-': Not scanned
- '0': Clean (no security findings detected)

La version Debian (deprecated):

docker run --rm -v trivy-cache:/root/.cache/ -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy:latest image --ignore-unfixed htdemony/duperemove:debian
2025-09-30T23:25:46Z    INFO    [vuln] Vulnerability scanning is enabled
2025-09-30T23:25:46Z    INFO    [secret] Secret scanning is enabled
2025-09-30T23:25:46Z    INFO    [secret] If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2025-09-30T23:25:46Z    INFO    [secret] Please see https://trivy.dev/v0.67/docs/scanner/secret#recommendation for faster secret detection
2025-09-30T23:25:48Z    INFO    Detected OS     family="debian" version="13.1"
2025-09-30T23:25:48Z    INFO    [debian] Detecting vulnerabilities...   os_version="13" pkg_num=86
2025-09-30T23:25:48Z    INFO    Number of language-specific files       num=0
2025-09-30T23:25:49Z    WARN    Using severities from other vendors for some vulnerabilities. Read https://trivy.dev/v0.67/docs/scanner/vulnerability#severity-selection for details.

Report Summary

┌──────────────────────────────────────────┬────────┬─────────────────┬─────────┐
│                  Target                  │  Type  │ Vulnerabilities │ Secrets │
├──────────────────────────────────────────┼────────┼─────────────────┼─────────┤
│ htdemony/duperemove:debian (debian 13.1) │ debian │        0        │    -    │
└──────────────────────────────────────────┴────────┴─────────────────┴─────────┘
Legend:
- '-': Not scanned
- '0': Clean (no security findings detected)

⁠Tips

#Pour copier un fichier dans un système de ficher btrfs sans en dupliquer le contenu, utilisez la commande suivante (attention, doit être sur le même système de fichier (FS)):
cp --reflink <chemin source> <chemin cible>
  • La commande ln (avec -s) n'est qu'un simple lien symbolique (FS différents autorisé). Si nous souhaitons modifier une seule copie du fichier, alors les 2 cibles sont modifiées.
  • La commande cp -l ou ln (sans -s), utilise un système d'inode (FS identique uniquement), mais cache que si le contenu est modifié sur un fichier, il l'est également sur l'autre (qui est en faite le même fichier mais portant un nom/chemin différent).

Tag summary

Content type

Image

Digest

sha256:5e688bd88…

Size

11.2 MB

Last updated

8 months ago

docker pull htdemony/duperemove