GNU/Linux >> Tutoriels Linux >  >> Linux

Comment dire à Rsync de conserver l'horodatage sur les fichiers lorsque l'arborescence source a un point monté ?

Lié à cette question

Brève description du problème :

Lorsque l'arborescence source contient un point monté, les horodatages des fichiers à l'intérieur de ce point monté lorsqu'ils sont copiés dans l'arborescence cible ne sont pas conservés même lors de l'utilisation de -a possibilité

Description détaillée :

Supposons qu'il s'agisse de l'arborescence source :

                       /home/                           /home/
                         |                                |
                        me/                             BACKUP/
                         |                                |
                    +----+----------+                +----+-------+
                    |    |          |                |    |       |
                 data/  foo.txt    boo.txt         data/ foo.txt boo.txt
                    |                                |
                   a.txt                           a.txt

data/ ci-dessus est monté un disque USB externe. Tout est ext4 système de fichiers. Tout dans la source appartient à mon me .

BACKUP s'est également avéré être un point de montage, le disque USB de sauvegarde.

Après avoir émis cette commande rsync -av --delete /home/me/ /home/BACKUP/ , j'ai trouvé que /home/BACKUP/data/ et tout ce qui se trouve en dessous a l'horodatage actuel, comme si ces fichiers avaient été créés maintenant, et non l'horodatage sur les fichiers dans /home/me/data/ . Autres fichiers et dossiers en dehors de data l'horodatage était bien conservé.

La question est :comment utiliser rsync dans le paramètre ci-dessus pour lui dire de conserver les horodatages sur tous les fichiers et dossiers, même sur les fichiers et dossiers 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

Réponse acceptée :

de man rsync :

   -t, --times                 preserve modification times

EDIT - pour améliorer cette réponse car il n'est pas immédiatement évident pourquoi cela n'a pas aidé OP :

OP copie des fichiers d'un système de fichiers à un autre et souhaite conserver c-time . La plupart des gens comprennent c-time pour signifier "heure de création", ce qui est incorrect sur la plupart des systèmes UNIX/Linux (les systèmes de fichiers Windows suivent les heures de "création" ou de "naissance").

Pour la plupart, sous UNIX et Linux, c-time est l'horodatage utilisé pour enregistrer le dernier inode 'C 'change. Un inode change si l'un de ses attributs est mis à jour :

  • création (cas de l'OP)
  • mode (autorisations)
  • propriétaire/groupe
  • nombre de liens physiques
  • etc. (appel système stat())

OP ne peut pas conserver le c-time de leurs fichiers lorsqu'ils sont amenés sur un nouveau système de fichiers. La création de ces fichiers dans les nouveaux systèmes de fichiers est l'une des conditions listées ci-dessus (création d'inode/fichier).

/MODIFIER


Linux
  1. Estimer le temps ou le travail restant pour terminer pour Rsync ?

  2. Comment distinguer le binaire des fichiers texte sous Linux

  3. Comment RSYNC un seul fichier?

  4. Comment dire à Dolphin quels fichiers cacher ?

  5. Comment puis-je savoir quels fichiers un processus a ouverts ?

Comment exclure des fichiers et des répertoires avec Rsync

Comment transférer des fichiers avec Rsync sur SSH

Comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux

Rsync Afficher la barre de progression lors de la copie de fichiers sous Linux

Comment configurer une sauvegarde avec rsync sur Ubuntu 18.04

Comment supprimer les fichiers .fuse_hidden* ?