Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 17-10-2020 05:52:48

hybridemoineau
Membre
Inscription : 21-02-2016

[Résolu]Rsync : synchroniser une partie de dossiers (de A à U)

Bonjour,

Après plusieurs heures (...) d'essais infructueux, je vous expose mon problème.

Pour des raisons d'espace disponible sur mes disques de sauvegarde, je cherche à sauver une partie des dossiers sur un disque (de A à U) et une autre sur un autre disque (de V à Z).

Je ne peux pas modifier l'arborescence des dossiers sur le disque source.

J'ai essayé, en dernier, cette commande :

rsync -rltgopuDv --delete-excluded --exclude-from='/home/source/liste_dossiers_à_ne_pas_copier' --delete-before --ignore-errors --force --progress --stats /home/source /mnt/destination
 



Ca ne marche pas sur trois points :

1) Les dossiers à exclure de la destination ne le sont pas

2) Les dossiers qui ne sont pas sur la source ne sont pas effacés de la destination

3) La synchronisation se fait comme si la destination était vierge

J'ai deux hypothèses, mais je ne parviens pas à y voir clair.

Soit c'est la ligne de commande qui est mauvaise. J'ai aussi essayé include-from ou list-from, je suis passé de --del à --delete-before, j'ai ajouté --delete-excluded. Ca n'a rien changé aux trois points qui ne marchent pas.

Soit c'est la liste de dossiers à ne pas copier qui ne fonctionne pas. Je la récupère avec un ls dossier | grep [A-U].
Les formes suivantes ne fonctionnent pas

dossier1
dossier2
dossier3



/home/source/dossier1
/home/source/dossier2
/home/source/dossier3



Faut il mettre des signes + ou - devant chaque nom de dossier de la liste ? (ce que je crois...)
Faut-il des guillemets ? (n'ai pas réussi à les mettre pour les chemins qui avaient des espaces, avec sed ou awk, mais c'est un autre problème)
S'agit il d'une erreur de chemin ? (/dossier1 plutôt que /home/source/dossier1)

Merci de vos éclairages !

Dernière modification par hybridemoineau (18-10-2020 19:38:43)

Hors ligne

#2 18-10-2020 19:37:37

hybridemoineau
Membre
Inscription : 21-02-2016

Re : [Résolu]Rsync : synchroniser une partie de dossiers (de A à U)

Réponse, simple. Pour sauvegarder les dossiers commençant par a jusque u en lançant rsync en root en préservant toutes leurs propriétés initiales :

rsync -rltgopuDv -del --exclude-from='/root/vz' --ignore-errors --force --progress --stats /source /destination



où vz est un fichier texte comprenant :

v*
V*
w*
W*
x*
X*
y*
Y*
z*
Z*



Les commandes files-from et include-from sont d'une autre syntaxe, que je ne maîtrise pas.

Dernière modification par hybridemoineau (18-10-2020 19:41:13)

Hors ligne

#3 18-10-2020 22:41:48

hybridemoineau
Membre
Inscription : 21-02-2016

Re : [Résolu]Rsync : synchroniser une partie de dossiers (de A à U)

La technique du post précédent ne permet pas de sauvegarder les sous-dossiers dont le nom ne commence pas par une lettre entre a et u.

Pour sauvegarder tous les sous dossiers des dossiers dont le nom commence par une lettre entre v et z (plus court à faire), il faut passer par l'option filter et une liste de filtres.

La commande est :

rsync -rltgopuDv --del --ignore-errors --force --progress --stats --filter='merge fichier_de_filtres' /source /destination



le 'merge' avant le nom du fichier de filtre est nécessaire.

Le fichier de filtres est :

+ v*
+ V*
+ w*
+ W*
+ x*
+ X*
+ y*
+ Y*
+ z*
+ Z*
+ v*/**
+ V*/**
+ w*/**
+ W*/**
+ x*/**
+ X*/**
+ y*/**
+ Y*/**
+ z*/**
+ Z*/**
- *



le + indique que les fichiers ou dossiers qui remplissent la condition sont à sauvegarder.
Le - * à la fin exclut tous les fichiers ou dossiers qui ne remplissent pas une des conditions précédentes.
Les lignes du type  + z*/** ont pour but d'inclure tous les chemins des sous-dossiers des dossiers à sauvegarder.

Dernière modification par hybridemoineau (19-10-2020 10:19:24)

Hors ligne

Pied de page des forums