Bonjour à tous!
Je n'ai pas sauvegardé mon système depuis assez longtemps et je pense qu'il est grand temps de me mettre à rsync. Mais malgré la lecture du manuel, je n'arrive pas à faire les 2 choses suivantes:
1) ne sauver qu'un fichier (
garder1-2 dans mon exemple) au fin fond d'une arborescence mais pas tous les autres fichiers et répertoires en amont (à l'exception des répertoires parent du fichier en question, bien entendu)
2) ne pas sauver un répertoire (
exclure2-1/ dans mon exemple) à la racine de ce que l'on sauvegarde tout en sauvant les répertoires du même nom présents dans une autre partie de l'arborescence.
Pas clair? Pour illustrer cela, je vous propose de construire l'arborescence suivante:
/tmp/essai/BASE/
/tmp/essai/BASE/test1/
/tmp/essai/BASE/test1/exclure1-1/
/tmp/essai/BASE/test1/garder1-1/
/tmp/essai/BASE/test1/garder1-1/garder1-2
/tmp/essai/BASE/test1/garder1-1/exclure1-2
/tmp/essai/BASE/test2/
/tmp/essai/BASE/test2/exclure2-1/
/tmp/essai/BASE/test2/garder2-1/
/tmp/essai/BASE/test2/garder2-1/exclure2-1/
/tmp/essai/BASE/exclure2-1/
Les chaines de caractères ne se terminant pas par un / sont des fichiers. Les autres, des répertoires.
Cela revient à taper les commandes:
mkdir -p /tmp/essai/BASE /tmp/essai/BACK
cd /tmp/essai/BASE
mkdir -p exclure2-1/ test1/exclure1-1/ test1/garder1-1/ \
test2/exclure2-1/ test2/garder2-1/exclure2-1/
touch test1/garder1-1/garder1-2 test1/garder1-1/exclure1-2
Le répertoire /tmp/essai/BASE/test1/ illustre mon 1er objectif. /tmp/essai/BASE/test2/ et /tmp/essai/BASE/exclure2-1/ mon 2ème.
======================================================================
illustration de l'échec du 1er objectif (défini au début du message)
======================================================================
rsync -av --stats -r --include=test1/garder1-1/garder1-2 --exclude=test1/* \
--delete /tmp/essai/BASE /tmp/essai/BACK
-> /tmp/essai/BACK/BASE/test1/garder1-1/garder1-2 n'est pas sauvé, contrairement à ce que j'attendais
=======================================================================
illustration de l'échec du 2ème objectif (défini au début du message)
=======================================================================
rsync -av --stats -r --exclude=exclure2-1/ --delete \
/tmp/essai/BASE /tmp/essai/BACK
-> aucun répertoire exclure2-1 n'a été sauvé dans /tmp/essai/BACK/BASE (j'attendais que /tmp/essai/BASE/test2/exclure2-1/ et /tmp/essai/BASE/test2/garder2-1/exclure2-1/ le soient)
Autre tentative:
rsync -av --stats -r --exclude=/exclure2-1/ --delete \
/tmp/essai/BASE /tmp/essai/BACK
-> tous les exclure2-1/ ont été sauvés (j'attendais que /tmp/essai/BASE/exclure2-1/ ne le soit pas)
Quelles commandes taper pour atteindre les 2 objectifs?