3 votos

¿Puedo utilizar rsync para arreglar las marcas de tiempo que el Asistente de Migración ha destrozado?

He descubierto por las malas que el "Asistente de Migración" de Apple no siempre conserva las marcas de tiempo de los archivos (es decir, las fechas de creación/modificación en ~/Documents ), y ahora tengo una nueva máquina con algunas carpetas que contienen archivos con fecha y hora de la migración -. no las marcas de tiempo originales. Es un lío, y una especie de desastre para mi flujo de trabajo. Acabo de enterarme de que muchos otros se han quemado con esto antes que yo.

Pregunta: ¿hay alguna forma de que pueda utilizar rsync quizás con el --size-only para restaurar las marcas de tiempo originales y correctas?

Necesito crear un recurso compartido NFS, supongo, para rsync entre dos macs diferentes. O tal vez podría hacerlo a través de ssh ?

Si esto es posible, ¿alguna indicación sobre cómo hacerlo realmente?

2voto

Joel Puntos 112

"I have discovered the hard way that Apple's "Migration Assistant" doesn't always preserve file timestamps"

comentario : Parece que se ha convertido en la MO - debes descubrir todas las cosas por las malas.

Advertencias: No estoy totalmente seguro de que esto resuelva tu problema o responda a tu pregunta, pero espero que te sirva de ayuda. En realidad no sé lo que hace el Asistente de Migración porque en 12 años y 5 Macs diferentes, nunca lo he utilizado. Así que esta respuesta puede ser una respuesta parcial, o puede ser incompatible con el Asistente de Migración. Como adivina Yo diría que use rsync después de Asistente de Migración - para limpiar el desastre que ha dejado. En otras palabras, rsync probablemente restaurar no sólo las marcas de tiempo perdidas por MA También puede restaurar todos los metadatos de los archivos que se hayan perdido. Otros aquí pueden tener mejores ideas; mi respuesta se limitará a rsync .

Utilicé rsync versión 3.2.4 para esta respuesta, instalada desde MacPorts . No sé si el rsync incluida con su versión de MacOS incluye las opciones necesarias que se muestran aquí - es posible que desee investigar que en lugar de instalar una versión actual de rsync .

Antecedentes: He empezado a utilizar rsync como mi principal herramienta de copia de seguridad para MacOS, y tuve que resolver algunos de los mismos problemas que usted: mangled y desaparecidos metadatos . En mi caso, el problema se produjo al cruzar un límite del sistema de archivos: de APFS en mi unidad local a btrfs a través de SMB en un Synology NAS. En tu caso, el Asistente de Migración, no puedo ni imaginarme cómo es posible que ni siquiera consiga que los metadatos de fecha y hora sean correctos, pero desde luego no eres el único que ha informado de este tipo de problemas.

Tomé algunas notas mientras trabajaba para resolver mi problema, y se transformaron en un "receta" en mi MacOS Repo de GitHub . Intentaré que esta respuesta sea breve, ya que la mayoría de los detalles se tratan en ese documento.

rsync con conservación de metadatos

rsync copia efectivamente los datos de un fuente (el "de" ubicación) a un destino (el "a" ubicación). Si estás usando un servidor de archivos (NAS) como intermediario entre tus dos Macs, estos comandos deberían hacer lo que necesitas. No veo ninguna necesidad de involucrar a un NAS intermedio, pero puede ser cómodo o deseable si desea una copia de seguridad. Usted debe ser capaz de lograr la rsync a través de una conexión SSH; los siguientes comandos ilustran la sintaxis y las opciones necesarias independientemente de si se utiliza el NAS intermediario o no:

del "viejo Mac" al NAS:

Suponiendo que las carpetas de origen y destino son:
FUENTE: /Users/MyHome/MyData/
DESTINO: /System/Volumes/Data/mnt/MyNAS/
Desde un terminal en tu "viejo Mac":

% SRC-FLDR="/Users/MyHome/MyData/"
% DST-FLDR="/System/Volumes/Data/mnt/MyNAS/"
% rsync -rlAXtgoDivv --dry-run --fake-super $SRC-FLDR $DST-FLDR > rsync.log 2>&1

Explicación: Este rsync utiliza el comando --dry-run y, por tanto no moverá ni modificará ningún archivo . Le proporcionará un registro detallado (el ivv opciones) de qué archivos se habrían trasladado o modificado . Una vez que esté satisfecho con los resultados, simplemente retire el --dry-run y ejecútelo de nuevo para comprobar el efecto. Revise la rsync.log mediante la función "Tabla de descodificación"

del NAS al "nuevo Mac":

FUENTE: /System/Volumes/Data/mnt/MyNAS/
DESTINO: /Users/MyNewMacHome/MyData/
Desde un terminal en tu "nuevo Mac":

% SRC-FLDR="/System/Volumes/Data/mnt/MyNAS/"
% DST-FLDR="/Users/MyNewMacHome/MyData/"
% rsync -rlAXtgoDivv --dry-run --fake-super $SRC-FLDR $DST-FLDR > rsync.log 2>&1

del "viejo Mac" al "nuevo Mac".

Si puedes establecer una conexión SSH entre tu "viejo Mac" y tu "nuevo Mac", no es necesario que intervenga un NAS intermedio. Lo mismo rsync se pueden utilizar opciones; le dejaré a usted la formulación de las carpetas FUENTE y DESTINO.

Verificación de resultados:

La receta de GitHub incluye un breve zsh script que se stat todos los archivos, carpetas, enlaces, etc. entre las carpetas ORIGEN y DESTINO . Puede ejecutarse de la siguiente manera rsync para verificar que al menos el stat atributos son los mismos.

En rsync no sólo conservarán los metadatos que contienen las marcas de fecha y hora, sino que también conservarán todos los archivos atributos ampliados . La receta de GitHub también incluye script para comparar la salida de xattr -lrsvx para todos los archivos (que tengan xattrs ) en los directorios SOURCE y DESTINATION .

En stat que utilizo aquí es la utilidad GNU coreutils versión 9.1 . En find La versión que utilizo es la GNU findutils versión 4.9.0 . Ambos están disponibles en MacPorts y disponible para prácticamente todas las versiones de MacOS. El sitio xattr es una utilidad de MacOS.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X