2010-07-29 07:17:55 +0000 2010-07-29 07:17:55 +0000
84
84

alquitrán: Saliendo con estado de fallo debido a errores anteriores

He escrito un pequeño script que alquitrana y comprime una lista de directorios + archivos.

El script parece ejecutarse con éxito, en el sentido de que se crea un archivo .tar.gz utilizable después de la ejecución del script.

Sin embargo, me aparece este molesto mensaje al terminar el script:

tar: Exiting with failure status due to previous errors

No veo ningún mensaje de error mientras el script está funcionando, y como dije, el archivo producido puede ser descomprimido sin advertencias/errores. Como estoy usando esto como parte de mi copia de seguridad, quiero asegurarme de que no estoy ignorando algo serio.

¿Cuáles son las posibles razones por las que se produce este mensaje de error/advertencia - y puedo ignorarlo con seguridad? Si no puedo ignorarlo, ¿cuáles son los pasos para diagnosticar y resolver el error?

Estoy corriendo en Ubuntu 10.0.4

Respuestas (9)

106
106
106
2010-07-29 11:22:18 +0000

Recibirás ese mensaje si, por alguna razón, tar no puede añadir todos los archivos especificados al tar. Una de las más comunes es no tener permiso de lectura en uno de los archivos. Esto podría ser un gran problema ya que lo estás usando para hacer copias de seguridad. Si está utilizando la bandera -v, intente dejarla desactivada. Esto debería reducir la salida y permitirle ver lo que está sucediendo.

23
23
23
2013-01-28 09:21:24 +0000

el problema es que el argumento,f toma el siguiente como nombre de archivo, por lo que debe ser el último del argumento

tar cvzf output.tgz folder

o

tar -cvzf output.tgz folder

es el mismo y no da error de toma.

6
6
6
2014-01-17 12:24:36 +0000

A veces, al hacer una copia de seguridad de los archivos que pueden cambiar durante la copia de seguridad, como los archivos de registro, puede ser útil la opción de tar ‘–ignore-failed-read’ (estoy en Debian Linux, no estoy seguro para tar no gnu).

La salida estándar y el error pueden ser redirigidos en 2 archivos diferentes con algo como

LOGDIR='/var/log/mylogdir' 
LOG=${LOGDIR}/backup.log 
ERRLOG=${LOGDIR}/backup.error.log 
DATE=$(date +%Y-%m-%d)
HOSTNAME=$(hostname)
DATA_DIRS='/etc /home /root'

tar --ignore-failed-read -f ${BACKUP_DIR}/${HOSTNAME}-${DATE}.tgz -cvz ${DATA_DIRS} > $LOG 2> $ERRLOG

Me parece que esto es generalmente seguro, pero por favor tenga cuidado ya que tar no se detendrá …

5
5
5
2016-10-10 15:03:38 +0000

Yo tenía el mismo problema y ninguna de las respuestas anteriores me funcionó. Sin embargo, descubrí que ejecutar el siguiente comando funcionaba:

tar -cpzf /backups/fullbackup.tar.gz --exclude=backups --exclude=proc --exclude=tmp --exclude=mnt --exclude=sys --exclude=dev --exclude=run /

Los errores que se referían a tar: Exiting with failure status due to previous errors se pueden identificar desactivando la opción -v. Al revisar, los errores provenían de directorios como /run y /sys.

Al excluir estos directorios, funciona bien. Espero que esto ayude a quien tenga un problema similar.

3
3
3
2011-09-10 23:06:14 +0000

Yo tenía el mismo problema. Lo único que hice fue quitar el guión (“-”) del comando.

En lugar de escribirlo como

tar -cvfz carpeta output.tar.gz/

intente escribirlo como

tar cvfz carpeta output.tar.gz/

Desconozco por qué el guión estaba causando problemas en mi caso pero al menos funcionó.

2
2
2
2013-10-19 07:52:47 +0000

Has entendido mal una respuesta anterior. El problema no es el -, es dónde está el f en su lista de argumentos.

tar cvfz target.tgz <files>

Intentará crear un archivo llamado “z”, ya que ese es el texto que aparece después de f. El mensaje de error se debe a que tar no puede encontrar “target.gz” para añadirlo al archivo “z”.

tar cvzf target.tgz <files>

Creará correctamente target.tgz y añadirá archivos a él. Esto se debe a que target.tgz es el primer texto después del argumento f.

0
0
0
2019-10-15 15:49:46 +0000
One of the reason to get this errors for beginners is that They forget to perform operations in the directory where the files are present Go to that location and perform the command As my files are in desktop ~/Desktop# tar - cf done.tar abc xyz Where xyz and abc are files and we are storing those files in done.tar If we go and perform the command in other location we will get above error
0
0
0
2019-04-23 18:33:45 +0000

Tuve un problema similar al desatar un archivo que había recibido. Resulta que no tenía permiso para escribir los archivos en el archivo propiedad de root. Usando sudo se arregló.

0
0
0
2010-07-29 07:26:01 +0000

Normalmente se puede ignorar ese mensaje. Si hay algún cambio (como borrado/creación/modificación de archivos) en el árbol de directorios subyacente durante la creación del tar, lanzará ese mensaje. También si hay archivos especiales como nodos de dispositivos, fifos y demás, causarán esa advertencia.

¿Está seguro de que no puede ver ningún archivo culpable? Prueba con tar cvfz yourtarball.tgz /your/path