Estaba haciendo un: tar -cvfy tuve que matarlo con ctrl-C. Sé que debería haber hecho una Ctrl-Zy luego volver a poner la tarea en primer plano ... pero no es la historia.
¿Puedo reanudar desde el punto en que detuve la tarea?
¿Hay un archivo tar incompleto en la ubicación de destino?
Karthik T
Sí, hay un alquitrán incompleto.
mthpvg
Respuestas:
11
Este método recreará su archivo tar y agregará la parte terminada al archivo existente. Esto puede ser útil si realiza una copia de seguridad a través de una conexión de red. Probablemente resultará en un archivo corrupto si alguno de los datos en sus INFILES ha cambiado. Asegúrese de probar su archivo una vez completado.
Cambie INFILES y OUTFILE a los nombres correctos en la siguiente línea.
Supongo que esto es más rápido que simplemente reiniciar el proceso tar porque en realidad no está escribiendo nada en el disco.
Tyler
2
La mejor solución sería eliminar el archivo tar y reiniciar el proceso antepuesto nohupy anexado &. Alternativamente, puede ejecutar tar -tfvy usar eso como una exclusión para lo nuevo tar -cvf.
tar -cvfsobrescribirá el archivo existente. Quiso decir tar -rvf? Además, el último archivo que se escribió en el archivo probablemente estaba incompleto.
Gilles 'SO- deja de ser malvado'
Entonces, la idea es hacer una lista de los archivos que ya están en el tarball, menos el último que probablemente esté incompleto. Y luego ejecutar un tar -rvf?
Lo que hago en el caso, que tengo un tararchivo incompleto , creo una lista de los archivos en el archivo:
tar tf archive.tar | sed -e '/\/$/d' -e x -e '/^$/d' >files-done
El sedcomando elimina todas esas líneas, que tienen una barra inclinada final: son directorios, no archivos, y queremos volcar los directorios nuevamente y solo omitir esos archivos en esos directorios, que ya tenemos en el primer archivo tar. Además, dejamos que sedeliminemos el último nombre de archivo, porque es muy probable que se haya volcado solo parcialmente, por lo que lo archivaremos nuevamente.
Luego, simplemente pase la files-donelista a través de la opción -X a un nuevo tarcomando:
tar cfvX archive2.tar files-done SOURCEDIR
Asegúrese de utilizar un nombre de archivo de salida diferente en el nuevo comando tar, o sobrescribirá su archivo parcial. No intente agregar directamente al archivo tar corrupto.
Respuestas:
Este método recreará su archivo tar y agregará la parte terminada al archivo existente. Esto puede ser útil si realiza una copia de seguridad a través de una conexión de red. Probablemente resultará en un archivo corrupto si alguno de los datos en sus INFILES ha cambiado. Asegúrese de probar su archivo una vez completado.
Cambie INFILES y OUTFILE a los nombres correctos en la siguiente línea.
Explicación:
SIZE="$(wc -c < $OUTFILE)"
# Obtener el tamaño actual del archivo.tar -cz --to-stdout "$INFILES" |
# Comience a crear el archivo y envíe la salida altail
comando.tail -c +$(($SIZE+1)) >>
# Haga caso omiso de los datos antes de $ SIZE + 1 y reanude el resto del archivo $ OUTFILE.fuente
La mejor solución sería eliminar el archivo tar y reiniciar el proceso antepuesto
nohup
y anexado&
. Alternativamente, puede ejecutartar -tfv
y usar eso como una exclusión para lo nuevotar -cvf
.fuente
tar -cvf
sobrescribirá el archivo existente. Quiso decirtar -rvf
? Además, el último archivo que se escribió en el archivo probablemente estaba incompleto.tar -rvf
?No puedes; solo necesitas comenzar de nuevo.
fuente
Lo que hago en el caso, que tengo un
tar
archivo incompleto , creo una lista de los archivos en el archivo:El
sed
comando elimina todas esas líneas, que tienen una barra inclinada final: son directorios, no archivos, y queremos volcar los directorios nuevamente y solo omitir esos archivos en esos directorios, que ya tenemos en el primer archivo tar. Además, dejamos quesed
eliminemos el último nombre de archivo, porque es muy probable que se haya volcado solo parcialmente, por lo que lo archivaremos nuevamente.Luego, simplemente pase la
files-done
lista a través de la opción -X a un nuevotar
comando:Asegúrese de utilizar un nombre de archivo de salida diferente en el nuevo comando tar, o sobrescribirá su archivo parcial. No intente agregar directamente al archivo tar corrupto.
fuente