GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo decirle a Rsync que conserve la marca de tiempo en los archivos cuando el árbol de origen tiene un punto montado?

Relacionado con esta pregunta

Breve descripción del problema:

Cuando el árbol de origen tiene un punto montado dentro, las marcas de tiempo en los archivos dentro de ese punto montado cuando se copian al árbol de destino no se conservan incluso cuando se usa -a opción

Descripción detallada:

Supongamos que este es el árbol de fuentes:

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

donde data/ arriba está montado un disco USB externo. Todo es ext4 sistema de archivos Todo en la fuente es propiedad de mi me .

BACKUP también pasó a ser un punto de montaje, el disco USB de copia de seguridad.

Después de emitir este comando rsync -av --delete /home/me/ /home/BACKUP/ , encontré que /home/BACKUP/data/ y todo lo que está debajo tiene la marca de tiempo actual, como si estos archivos se hubieran creado ahora, y no la marca de tiempo en los archivos en /home/me/data/ . Otros archivos y carpetas fuera de data se conservó bien la marca de tiempo.

La pregunta es:Cómo usar rsync en la configuración anterior para indicarle que conserve las marcas de tiempo en todos los archivos y carpetas, incluso en archivos y carpetas en un punto montado?

Estoy usando:

>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

Respuesta aceptada:

de man rsync :

   -t, --times                 preserve modification times

EDITAR:para mejorar esta respuesta, ya que no es inmediatamente obvio por qué esto no ayudó OP:

OP está copiando archivos de un sistema de archivos a otro y quiere preservar c-time . La mayoría de la gente entiende c-time para significar "hora de creación", lo cual es incorrecto en la mayoría de los sistemas UNIX/Linux (los sistemas de archivos de Windows rastrean las horas de "creación" o "nacimiento").

En su mayor parte, en UNIX y Linux, c-time es la marca de tiempo utilizada para registrar el último inodo 'C colgar Un inodo cambia si alguno de sus atributos se actualiza:

  • creación (caso de OP)
  • modo (permisos)
  • propietario/grupo
  • recuento de enlaces fijos
  • etc. (llamada al sistema stat())

OP no puede conservar el c-time de sus archivos cuando se llevan a un nuevo sistema de archivos. La creación de estos archivos en los nuevos sistemas de archivos es una de las condiciones enumeradas anteriormente (creación de inodo/archivo).

/EDITAR


Linux
  1. ¿Tiempo estimado o trabajo restante para terminar para Rsync?

  2. ¿Cómo RSYNC un solo archivo?

  3. ¿Cómo programar archivos de árbol de dispositivos Linux .dts?

  4. Cómo hacer que el comando ls de Linux muestre el segundo en la marca de tiempo

  5. ¿Cómo puedo excluir archivos de forma predeterminada con rsync?

Cómo excluir archivos y directorios con Rsync

Cómo transferir archivos con Rsync a través de SSH

Cómo hacer una copia de seguridad de archivos y directorios usando Rsync en Linux

Rsync Mostrar barra de progreso al copiar archivos en Linux

Cómo configurar una copia de seguridad con rsync en Ubuntu 18.04

¿Cómo eliminar archivos .fuse_hidden*?