J'ai essayé de comprendre le comportement de rsync, qui liste toujours les répertoires avec des horodatages différents et des tailles identiques, malgré la fourniture d'un fichier de type --size-only
drapeau.
# lists some directory without listing any changed files
> rsync -av [path 1] [path 2] --dry-run --size-only
> building file list ... done
> folder1/folder1a/
> folder1/folder1b/
# checks reasons with -i
# ...
> .d..t....folder1/folder1a/
> .d..t....folder1/folder1b/
Comme vous pouvez le voir, --itemize-change
montre que la seule différence entre les dossiers source et destination est l'horodatage. Mais il est toujours listé dans mon exécution normale de rsync malgré la fourniture de --size-only
. Y a-t-il un moyen de corriger cela ? Il semble qu'il modifie toujours le dossier de destination si je l'exécute, ce qui entraîne un rechargement du dossier dans mes services de sauvegarde en nuage. Merci !
EDIT : La version de rsync est 2.6.9. La source est un dossier avec des sous-dossiers à l'intérieur, et à l'intérieur duquel se trouvent des fichiers aléatoires. La destination est mon dossier OneDrive. Il devrait être identique à la source, mais après avoir exécuté rsync pour transférer les dossiers, il semble que OneDrive touche les dossiers et fait que le futur rsync les voit comme différents (et rien d'autre de manuel ne se passe quand rsync est exécuté). Cela ne me dérange pas, mais je ne veux pas que rsync les mette à jour à l'avenir. C'est pourquoi j'ajoute l'option --size-only
pour ignorer les différences d'horodatage. Ce que j'essaie de comprendre, c'est pourquoi ces répertoires sont toujours listés, même si le changement signalé par --itemize-change
est seulement une différence d'horodatage ( .d..t....
) ? Je ne veux pas qu'ils soient retransférés à chaque fois que je lance rsync simplement parce qu'ils ont des horodatages différents.
EDIT 2 : Au début, je les ai téléchargés sur OneDrive (pas avec rsync), puis j'ai lancé rsync avec --size-only
sur le dossier plus tard. Par conséquent, le temps de modération des fichiers de destination n'est jamais modifié. Alors que --size-only
ne tient pas compte du fichier lui-même, le dossier est toujours considéré comme "différent". Je pense donc que même si la seule différence sur les dossiers eux-mêmes est l'horodatage ( .d..t....
), il met quand même à jour le dossier car les fichiers qu'il contient sont perçus comme différents (même avec la fonction --size-only
). Une fois que j'ai rsynchronisé tout sans --size-only
une fois, le problème a disparu puisque le temps de modération des fichiers à l'intérieur a changé.
Mais ce comportement n'est pas souhaitable, puisque le dossier et les fichiers eux-mêmes sont identiques à l'exception des horodatages. --size-only
devrait ignorer complètement le dossier. J'ai seulement l'intention d'utiliser rsync pour remplir les fichiers manquants après le téléchargement sur OneDrive (web), et non pas de les rsynchroniser dès le départ (car parfois la synchronisation des changements du disque local avec OneDrive est très très lente par rapport au téléchargement). Existe-t-il un moyen de contourner ce problème ? Comment puis-je empêcher rsync de mettre à jour des répertoires dont le contenu est identique en termes de taille ?