
Tengo una conexión a Internet en casa complicada, es posible que rsync se desconecte en cualquier momento y mis archivos grandes tendrán que reiniciarse desde el principio.
¿Hay alguna manera de dividir, digamos, un archivo de un GB en incrementos de 50 MB, enviarlos al destino y luego combinarlos? De esa manera, incluso si el archivo está cortado, tendré un porcentaje guardado en el otro extremo.
Respuesta1
Esta persona ya dio una gran explicación: https://unix.stackexchange.com/a/165417/446381
Entonces, si quiero lograr mi objetivo, debo usar la --append-verify
bandera con rsync.
Me --partial
parece un poco redundante. Se transfiere como archivos ocultos y luego se le cambia el nombre para que sea el archivo parcial. Lo cual no me gusta, porque un control-C podría interrumpir este proceso de cambio de nombre.
Respuesta2
Versión corta: para que rsync se reinicie mejor donde lo dejó, agregue la --inplace
bandera. No es necesario dividir archivos grandes.
Versión más larga:
Dividir el archivo en archivos más pequeños y transferirlos cada uno es una buena idea. Sin embargo, estás trabajando demasiado. Internamente, rsync divide los archivos en fragmentos de 64k... más o menos. Hay una manera de hacer rsync
lo que quieras: agregar la --inplace
bandera.
Veamos el problema más grande que estás teniendo: tu conexión a Internet no es confiable y necesitas una forma de enviar archivos grandes.
Si usa --inplace
la bandera (que implica --partial
), obtendrá el resultado deseado. Cada vez que se interrumpe una transferencia, rsync
dejará los archivos en un estado que haga eficiente continuar donde lo dejó la próxima vez que ejecute (lo mismo) rsync
.
Simplemente use --inplace
y ejecute el comando rsync varias veces hasta que todo se copie.
Si es muy paranoico, una vez que todos los archivos se hayan copiado correctamente, haga una pasada más agregando el indicador --checksum
( -c
). Esto realizará una nueva verificación muy lenta byte por byte en lugar de usar la marca de tiempo del archivo para saber qué archivos se pueden omitir. Dado que todos los archivos ya se copiaron correctamente, no debería encontrar más trabajo que hacer. Dicho esto, a veces hago esto solo para estar tranquilo. No desea utilizar este indicador durante las ejecuciones iniciales porque será muy lento y derrochador ya que volverá a leer cada bloque de cada archivo.