¿Cómo reanudar de forma segura y confiable el proceso de copia de archivos $Aen la ubicación de copia de seguridad $Brealizada con pv "$A" > "$B"o cat "$A" > "$B"?
(supongamos que el archivo $Aes muy grande, por ejemplo, el archivo de instantánea LVM2)
¿Se puede lograr con dd?
Preferido: soluciones bash o python (preferiblemente python3).
Escenario de ejemplo: pv "$A" > "$B"interrumpido después de copiar el 90%. ¿Cómo reanudarlo para finalizar el proceso de copia pero no repetir todo el trabajo nuevamente?

Respuestas:
Sí, puede usar dd para omitir los bloques.
Los parámetros importantes aquí son
skipasí comoseek:skip: omite BLOQUES bloques del tamaño de ibs al inicio de la entradaseek: omite BLOQUES de bloques de tamaño obs al inicio de la salidafuente
Tu quieres
rsync:fuente
--append.--appendha cambiado desde la versión 3.0.0. ¿Podría asegurarme si actualmente--appendignora la parte ya copiada, mientras--append-verifylee todo A para verificar la suma de verificación? (antes de la versión 3.0.0. se--appendcomportaba como--append-verify-> Esa es la razón del malentendido)--appendagrega ciegamente al archivo.--append-verifyhace lo mismo pero ejecuta sumas de comprobación al final, si las sumas de comprobación no coincidenrsyncparece hacer una nueva copia.¿Intentó
dd skipcon un desplazamiento del tamaño de archivo real de B (independiente del tamaño del bloque de partición)?Eso te daría la parte que falta. En ese punto, podría
catjuntarlos directamente en un nuevo archivo concat "$B" "$A2" >> "$C"; #mv "$C" "$B"(donde,$Cpor supuesto, es la parte que falta en una ruta con suficiente espacio).cattambién funciona bien para concatenar binarios y, en este caso, no tiene múltiples encabezados de archivo que precedan fusiones simples con script. Existe la posibilidad de que el final$Besté dañado, pero en ese caso podría acortarlo y releer más$Aen el paso inicial de dd.fuente