# Rsync et exclusion de fichiers ou répertoires

**URL:** <https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907>\
**Category:** Support Debian\
**Created:** [Février 22, 2023, 8:57 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907 "2023-02-22T08:57:52Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Février 22, 2023, 8:57 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907/1 "2023-02-22T08:57:52Z")

</div>

bonjour ,

je débute l’utilisation de _rsync_ pour mes sauvegardes ( non programmées ) pour lesquelles j’utilise 2 supports différents : l’un est «&nbsp;passif&nbsp;» ( clé USB ) et ne pose donc aucun problème particulier mais l’autre est le HDD d’un portable déjà ancien qui comporte debian 11 , S.E que je n’utilise que pour réceptionner les sauvegardes sur son HDD en utilisant le protocole _ssh_ . Son /home sera donc un CC de l’original à sauvegarder . Sauf que si je veux que _ssh_ fonctionne le répertoire _.ssh_ sur ce HDD ne doit pas être changé : il me faut donc au minimum exclure le répertoire _.ssh_ du transfert .

Selon un tuto j’ai le choix entre 2 méthodes mais si la commande donnée pour la 1ère méthode est claire celle de le 2ème méthode l’est beaucoup moins et je la transcris telle quelle

> In the following example shows how exclude the `node_modules` and `tmp` directories:

```auto
rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

```

```auto
rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/

```

/exclude-file.txt

```auto
node_modules
tmp

```

texte original : [rsync/exclure](https://linuxize.com/post/how-to-use-rsync-for-local-and-remote-data-transfer-and-synchronization/)

note : une autre possibilité serait de réserver une partition ou un répertoire à ajouter sur ce HDD ?

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Février 22, 2023, 9:12 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907/2 "2023-02-22T09:12:51Z")

</div>

Bonjour,  
Le portable distant, tu veux qu’il soit un clone de ta source? Car dans ce cas, le .ssh ne sera pas le seul fichier qui posera problème.  
Si tu veux juste une sauvegarde, alors ta question est un problème XY.  
Utilises plutôt un répertoire spécifique qui ne sera pas à la racine de l’utilisateur du portable pour faire la sauvegarde.

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Février 22, 2023, 9:15 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907/3 "2023-02-22T09:15:26Z")

</div>

> [@Zargos](#):
>
> Utilises plutôt un répertoire spécifique qui ne sera pas à la racine de l’utilisateur du portable pour faire la sauvegarde.

c’est la solution vers laquelle je m’apprêtais à m’orienter . Je vais faire comme sur la clé assimilée à un répertoire _/sauvegardes_ à créer sur le HDD et dans lequel je vais placer des copies /home et /etc , avec leurs dates .

Mais quelle est la syntaxe correcte pour la 2ème commande qui permet d’exclure des objets car celle qui est donnée me semble en vrac ?

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Février 22, 2023, 9:20 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907/4 "2023-02-22T09:20:31Z")

</div>

Dans la méthode 2, le exclude-from est un fichier qui contient les exclusions (c’est la même que pour la commande tar).  
Qui plus est tu as spécifié un repertoire et non un fichier, il manque e point devant le «&nbsp;/&nbsp;»:

> [@zao](#):
>
> `--exclude-from='./exclude-file.txt'`

au lieu de

> [@zao](#):
>
> `--exclude-from='/exclude-file.txt'`

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Février 22, 2023, 9:23 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907/5 "2023-02-22T09:23:39Z")

</div>

> [@Zargos](#):
>
> Dans la méthode 2, le exclude-from est un fichier qui contient les exclusions

OK , j’étais à 100 lieues de penser à ça .Merci .

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Février 23, 2023, 3:03 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907/6 "2023-02-23T15:03:55Z")

</div>

> [@Zargos](#):
>
> Utilises plutôt un répertoire spécifique qui ne sera pas à la racine de l’utilisateur du portable pour faire la sauvegarde.

en fait j’ai créé **/sauvegardes** et j’ai réglé les droits à 755 . Donc pas de problème … a priori . La commande utilisée était : **rsync -a /home/mm user@IP:/sauvegardes**. Mais le résultat n’est pas celui attendu car il manque des répertoires genre **.cups , .googleearth …** etc . Avec une commande similaire tous les répertoires de /home/mm sont bien présents dans la sauvegarde réalisée sur la clé USB .  
Où est mon erreur ?

note : j’avais essayé la même commande avec un répertoire cible **~/sauvegardes** et obtenu le même résultat mais comme la cible était elle même l’objet d’une copie j’ai eu un doute sur la validité du procédé et refait la copie ci-dessus . Mais peut-être qu’en excluant ce répertoire cible de la copie ?

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Février 23, 2023, 3:32 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907/7 "2023-02-23T15:32:06Z")

</div>

> [@zao](#):
>
> **rsync -a /home/mm**

Je crois que rsync ne se comporte pas pareil si tu ou non un «&nbsp;/&nbsp;» après mm.  
le «&nbsp;-a&nbsp;» est une archive, donc c’est possible que ce soit ça qui ne prenne pas les répertoires masqués.

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Février 23, 2023, 3:35 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907/8 "2023-02-23T15:35:09Z")

</div>

certains répertoires masqués sont copiés , .cache , .config … par exemple , de plus c’est la même commande que j’ai utilisée pour la clé USB sauf qu’elle ne passait pas par le protocole _ssh_ .

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Février 23, 2023, 3:36 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907/9 "2023-02-23T15:36:04Z")

</div>

Ah, alors il doit y avoir une différence dans les droits et permissions des répertoire copiés et ceux qui ne sont pas copiés (sticky bit ou autre peut être)

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Février 23, 2023, 3:38 UTC](https://www.debian-fr.org/t/rsync-et-exclusion-de-fichiers-ou-repertoires/87907/10 "2023-02-23T15:38:49Z")

</div>

un copié **.cache** et un autre non copié **.cups** :

```auto
mm@as17:~$ ls -ld .cache .cups
drwx------ 9 mm mm 4096 21 févr. 21:38 .cache
drwxr-xr-x 2 mm mm 4096 29 janv. 2022 .cups
mm@as17:~$ 

```

notes

- je vais m’acheter une 2ème clé usb ( finalement non ) car de toute façon **ssh** et **sudo** n’ont pas l’air de faire bon ménage sur mon ordi , j’aurais donc un problème avec la sauvegarde de /etc .
- voilà qui conforte un certain point de vue professionnel ( @Clochette )

> PS : il t’arrives toujours des trucs fantastiques 😅

suite et fin : problème contourné =

- création d’une nouvelle partition **win** avec installateur debian
- création de **/sauvegardes** dans cette partition
- copie de la clé USB dans **win/sauvegardes**

dommage de perdre la souplesse du protocole **ssh**
