Je pense que vous pouvez utiliser les -no-
options rsync
pour NE PAS copier la propriété ou les autorisations des fichiers que vous sync'ing.
Extrait de la page de manuel rsync
--no-OPTION
You may turn off one or more implied options by prefixing the option
name with "no-". Not all options may be pre‐fixed with a "no-":
only options that are implied by other options (e.g. --no-D,
--no-perms) or have different defaults in various circumstances (e.g.
--no-whole-file, --no-blocking-io, --no-dirs). You may specify
either the short or the long option name after the "no-" prefix (e.g.
--no-R is the same as --no-relative).
For example: if you want to use -a (--archive) but don’t want -o
(--owner), instead of converting -a into -rlptgD, you could specify
-a --no-o (or -a --no-owner).
The order of the options is important: if you specify --no-r -a, the
-r option would end up being turned on, the opposite of -a
--no-r. Note also that the side-effects of the --files-from
option are NOT positional, as it affects the default state of several
options and slightly changes the meaning of -a (see the --files-from
option for more details).
Propriété et autorisations
En parcourant la page de manuel, je pense que vous voudriez utiliser quelque chose comme ceci:
$ rsync -avz --no-perms --no-owner --no-group ...
Pour supprimer des fichiers qui n'existent pas, vous pouvez utiliser le --delete
commutateur:
$ rsync -avz --no-perms --no-owner --no-group --delete ....
Horodatage
En ce qui concerne l'horodatage, je ne vois pas comment le conserver sans modifier la comparaison des fichiers SOURCE et DEST. Vous voudrez peut-être dire rsync
d'ignorer les horodatages à l'aide de ce commutateur:
-I, --ignore-times
Normally rsync will skip any files that are already the same size
and have the same modification timestamp. This option turns off this
"quick check" behavior, causing all files to be updated.
Mise à jour
Pour les horodatages, --no-times
faites ce que vous cherchez.
>f..T...
indication suggérant que les drapeaux de fichiers et l'heure de modification sont définis sur la destination, ce que j'essaie d'éviter.Je pense qu'il est plus facile d'éviter l' option -a
et définissez uniquement les options souhaitées.
Si vous aimez toutes les options mais pas les modifications de l'utilisateur -o , du groupe -g , de l'heure -t et des autorisations -p , vous pouvez soustraire ces quatre options de l'équivalent d'archive.
Pour supprimer les fichiers sur la destination, utilisez l'option --delete .
A votre question: Mais je pense que tous les fichiers seront vérifiés - rsync ne peut pas transférer / vérifier uniquement les fichiers modifiés uniquement par leur contenu.
la source
-l
est pour les liens, les-D
appareils (traités comme--specials
), je pense que-r
seul est suffisant si nous parlons de contenu.Je pense que ce que vous recherchez, c'est l'option
depuis la page de manuel:
Si vous voulez vraiment supprimer les fichiers manquants dans le répertoire source, utilisez
--delete
la source
Vous pouvez forcer rsync à ignorer les vérifications basées sur la durée et la taille du fichier et utiliser une approche basée sur chksum avec le commutateur "-c".
Cela signifie qu'il doit comparer le fichier entier en morceaux (et transférer les métadonnées pertinentes entre la source et la destination pour que cela se produise), que le temps et la taille du fichier correspondent ou non, mais transfère uniquement les morceaux qui diffèrent. entre la source et la destination.
L’utilisation de ce commutateur en conjonction avec les autres commutateurs suggérés par d’autres devrait limiter le contenu copié (copier uniquement celui qui a changé) et présenter l’avantage de faire une vérification de la cohérence entre la source et la destination, MAIS cela prend plus de temps en fonction de la vitesse de votre lien, il doit chksum les morceaux de fichier des deux côtés et comparer).
la source
Au-dessous de la commande fonctionnerait parfaitement, je l'ai testé pour mon propre besoin, il ne faudra que le changement de contenu.
la source