Auteur Sujet: Sauvegarder avec rsync et exclure fichiers et dossiers cachés  (Lu 8415 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne melodie

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1777
    • Citrotux
Comme j'ai cherché et testé un bon moment ce matin, surtout avec les posts en français où la plupart des gens qui répondent commencent par argumenter, (mais pourquoi tu veux exclure tes fichiers de configs ?  :o - de quoi je me mèle ?  :-*)

j'ai finalement trouvé la solution sur un forum anglophone (askubuntu).

Voici comment faire:

sync -av -r --progress --exclude=".*" --exclude=".*/" SOURCE DESTINATION/

où "SOURCE" peut prendre un / à la fin, pour sauvegarder tout ce qui est dans SOURCE mais pas le répertoire "SOURCE" lui-même, ou ne pas prendre de / à la fin, de sorte à sauvegarder le répertoire SOURCE et tout ce qu'il contient. Et même chose pour DESTINATION : avec un / à la fin, on envoie le contenu de SOURCE à l'intérieur.

Les options : "-av" est récursif, bavard, et respecte les attributs (ce qui signifie qu'il conserve les droits, les permissions, et les appartenances des fichiers à leurs propriétaires et groupes respectifs d'origine).

--progress est optionnel et permet de voir le déroulement de l'action de rsync dans le terminal.

--exclude=".*" permet d'exclure tous les fichiers cachés, mais pas les répertoires cachés (comme .cache, .local, .gvfs ... il y en a beaucoup dans le répertoire de l'utilisateur)

--exclude=".*/" permet d'exclure tous les dossiers cachés.


Je ferai seulement dans un second temps la copie des répertoires cachés indispensables, du style .mozilla et .mozilla-thunderbird. J'aurais peut-être pu trouver un moyen de l'ajouter dans la ligne de commande (avec un ; à la fin de la ligne ci-dessus par exemple, et chainer la suite et si vous avez mieux, envoyez !)


Voici le test que j'ai fait pour voir si cela fonctionne:

j'ai créé un répertoire Test et un répertoire TEST et créé quelques fichiers et dossiers quelconques dans Test:

Citer
$ ls -lhAR
.:
total 12K
-rw-rw-r-- 1 melodie melodie    0 mars  19 13:30 bidule
-rw-rw-r-- 1 melodie melodie    0 mars  19 13:30 .bidule
-rw-rw-r-- 1 melodie melodie    0 mars  19 13:30 chose
-rw-rw-r-- 1 melodie melodie    0 mars  19 13:30 .chose
drwxrwxr-x 2 melodie melodie 4,0K mars  19 13:58 chouette
drwxrwxr-x 2 melodie melodie 4,0K mars  19 13:58 fourrure
drwxrwxr-x 2 melodie melodie 4,0K mars  19 13:58 lapin
-rw-rw-r-- 1 melodie melodie    0 mars  19 13:30 truc
-rw-rw-r-- 1 melodie melodie    0 mars  19 13:30 .truc

./chouette:
total 0
-rw-rw-r-- 1 melodie melodie 0 mars  19 13:58 .bidule
-rw-rw-r-- 1 melodie melodie 0 mars  19 13:58 .chose

./fourrure:
total 0
-rw-rw-r-- 1 melodie melodie 0 mars  19 13:58 .chose
-rw-rw-r-- 1 melodie melodie 0 mars  19 13:58 .truc

./lapin:
total 0
-rw-rw-r-- 1 melodie melodie 0 mars  19 13:58 .bidule
-rw-rw-r-- 1 melodie melodie 0 mars  19 13:58 .chose

la commande:
rsync -av -r --progress --exclude=".*" --exclude=".*/" Test/ TEST/

le résultat:
Citer
$ ls -lhAR TEST/
TEST/:
total 12K
-rw-rw-r-- 1 melodie melodie    0 mars  19 13:30 bidule
-rw-rw-r-- 1 melodie melodie    0 mars  19 13:30 chose
drwxrwxr-x 2 melodie melodie 4,0K mars  19 13:58 chouette
drwxrwxr-x 2 melodie melodie 4,0K mars  19 13:58 fourrure
drwxrwxr-x 2 melodie melodie 4,0K mars  19 13:58 lapin
-rw-rw-r-- 1 melodie melodie    0 mars  19 13:30 truc

TEST/chouette:
total 0

TEST/fourrure:
total 0

TEST/lapin:
total 0


notez que j'ai mis une option "-r" qui ne sert à rien. :]

man rsync précise:

Citer
-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

Good leaders being scarce, following yourself is allowed.