¿Cómo confirmar que un archivo se ha copiado en un nuevo disco sin ningún error?

4

Me gustaría copiar archivos de una unidad externa a una unidad conectada a la red. Quiero asegurarme de que no haya errores.

Sé de los archivos hash MD5 que veo para archivos grandes y únicos que se descargan de Internet. También sé que puedo usar el terminal para "diferenciar" los dos conjuntos de archivos.

Sin embargo, estoy buscando una pieza de software que pueda confirmar que todos los archivos en la estructura de archivos hayan sido copiados completamente por el buscador, o una pieza de software que haga la copia por mí y confirme que todos los los bits son exactamente iguales.

Los archivos están relacionados con el video y, a menudo, tienen un tamaño de TB (no en un archivo: archivos complejos de varias carpetas anidadas)

Estoy bien si hay un comando de terminal que puede hacer la copia y comparar por mí también. (aunque ser capaz de ver la cantidad de tiempo que queda en una copia es una característica muy buena ... además, quiero asegurarme de que obtengo TODO el archivo, las fuentes de recursos y todo)

    
pregunta evilblender 28.03.2012 - 18:03

3 respuestas

8
  

o una pieza de software que haría la copia por mí y confirma que todos los bits son exactamente iguales.

Esto es lo que rsync hace. Puede copiar un archivo, árboles enteros de archivos, casi cualquier cosa realmente. Y lo hace con un algoritmo fiable. Al final de un rsync, puede estar seguro de que el receptor recibió exactamente lo que envió desde la fuente.

Hay una GUI para rsync llamada arRsync que puede hacer que trabajar con ella sea un poco más amigable, aunque no funciona para rsync- llamadas over-ssh.

La otra ventaja de rsync es que puede hacer copias de reanudar en caso de interrupción. Particularmente agradable si estás copiando muchos archivos o incluso archivos grandes en redes que son poco confiables.

Si está copiando un disco local y una red que están disponibles para la misma Mac que puede hacer:

rsync -avz /Volumes/LocallyAttachedDrive/path/to/big-movie.mov /Volumes/RemoteShare/path/

Y ya has terminado.

Si es un directorio (que son paquetes como .app ) puedes hacer una copia recursiva completa con:

rsync -avz /Volumes/LocallyAttachedDrive/path/to/my-bundle.app /Volumes/RemoteShare/path/

Si no tiene acceso de nivel Finder / Bonjour al receptor, puede hacer rsync-over-ssh:

rsync -avz /Volumes/LocallyAttachedDrive/path/to/my-bundle.app remoteuser@remotehost:/Volumes/RemoteShare/path/

Se puede generar una clave compartida para que no tenga que ingresar una contraseña si lo desea.

Editar: puedes usar rsync para verificar si dos árboles son iguales con la opción --dry-run/-n . Si tengo el árbol de origen /Volumes/dir y lo copié en /Volumes/ConnectedDrive/dir puedo compararlos con:

rsync -acvn /Volumes/dir /Volumes/ConnectedDrive/

La salida me dirá si es necesario copiar alguno de los archivos al receptor para que el receptor sea igual a la fuente.

Por ejemplo, si he sincronizado dos árboles:

> rsync -avz ./8779 ./a/
building file list ... done
8779/
8779/.DS_Store
8779/logs/
8779/logs/MasterLog.txt
8779/logs/StartLog.txt

sent 893980 bytes  received 98 bytes  596052.00 bytes/sec
total size is 10034671  speedup is 11.22

Al compararlos por igualdad, no se deben realizar operaciones:

> rsync -acvn ./8779 ./a/
building file list ... done

sent 213 bytes  received 20 bytes  155.33 bytes/sec
total size is 10034671  speedup is 43067.26

Si el sumidero fuera ligeramente diferente, veríamos una salida como esta:

> echo foo >> a/8779/logs/MasterLog.txt 

> rsync -acvn ./8779 ./a/              
building file list ... done
8779/logs/MasterLog.txt

sent 219 bytes  received 26 bytes  490.00 bytes/sec
total size is 10034671  speedup is 40957.84

Ahora sabemos que el archivo MasterLog.txt no es el mismo.

    
respondido por el Ian C. 28.03.2012 - 18:23
1
md5 -r file1 file2

imprimirá los hashes de ambos archivos para que puedas compararlos. La marca -r imprime los hashes primero (en lugar del nombre de archivo primero), por lo que los hashes se alinean entre sí en el margen izquierdo, lo que facilita la comparación visual.

    
respondido por el JRobert 28.03.2012 - 19:39
0

Me quedo con MD5 si necesita verificación absoluta de que los archivos son los mismos. Podría escribir un pequeño script de bash para repetir los directorios y generar / verificar el hash para cada archivo.

    
respondido por el KidPub 28.03.2012 - 18:54

Lea otras preguntas en las etiquetas