Relatif à cette question
Brève description du problème:
Lorsque l'arborescence source contient un point monté, les horodatages des fichiers situés à l'intérieur de ce point monté lors de la copie dans l'arborescence cible ne sont pas conservés, même si l' -a
option est utilisée .
Description détaillée:
Supposons qu'il s'agit de l'arbre source:
/home/ /home/
| |
me/ BACKUP/
| |
+----+----------+ +----+-------+
| | | | | |
data/ foo.txt boo.txt data/ foo.txt boo.txt
| |
a.txt a.txt
où data/
ci-dessus est monté un disque USB externe. Tout est ext4
système de fichiers. Tout dans la source appartient à mon me
.
BACKUP
se trouvait également être un point de montage, le disque de sauvegarde USB.
Après avoir exécuté cette commande rsync -av --delete /home/me/ /home/BACKUP/
, j’ai trouvé que /home/BACKUP/data/
tout ce qui se trouvait en dessous avait l’horodatage actuel, comme si ces fichiers étaient créés maintenant, et non l’horodatage des fichiers /home/me/data/
. L’ data
horodatage d’ autres dossiers et dossiers situés à l’extérieur a été conservé.
La question est: comment utiliser rsync
le paramètre ci-dessus pour lui dire de conserver les horodatages de tous les fichiers et dossiers, même ceux situés sur un point monté?
J'utilise:
>uname -a
Linux 3.5.0-17-generic #28-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
>rsync -v
rsync version 3.0.9 protocol version 30
-a
qui dit: pararchive mode; equals -rlptgoD
conséquent,-t
est déjà inclus.ls -l
du fichier. Cela fonctionne sur les fichiers qui ne sont pas à l'intérieur du point de montage. Cependant, tous les fichiers situés à l'intérieur du point de montage ont un horodatage indiquant qu'ils viennent d'être créés. Quoi que vous appeliez cette fois. Je voulais juste qu'il utilise le même horodatage sur les fichiers de la source. Maintenant ce n'est pas le cas. Je veux que tous les aspects du temps soient copiés. c'est-à-dire qu'un clone du fichier soit créé. heure de création, heure de changement, etc ...ls -l
montre mtime (modifier) pas ctimecomme hr3miller l'a déjà dit, -a (ou --archive) est égal à -rlptgoD et inclut déjà le temps de synchronisation.
Cependant, lorsque rsync copie des données vers, par exemple. un montage NFS / FAT32 / NTFS où la préservation de l'utilisateur et du propriétaire échoue, rsync n'essaiera pas de définir l'heure. Rsync avertira avec quelque chose comme
Par conséquent, omettez de conserver l'utilisateur et le groupe en utilisant
au lieu de
Utilisez-le uniquement lorsque vous ne conservez pas le propriétaire et le groupe est une option pour vous. Notez que la préservation des liens symboliques et d’autres fonctionnalités peut également déclencher ce comportement. Vous devrez passer par la page de manuel pour chaque fonction rsync (-r -l -p -t -g -o -D-D) que vous souhaitez sauvegarder.
la source
J'utilise
rsync -az
et chose sûre il me préserve l'heure de modification. Je l'ai vérifié deux fois maintenant.la source
-a
(--archive
) comprend-t
.