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

goudron : Sortie avec un statut d'échec dû à des erreurs antérieures

J'ai écrit un petit script qui goudronne et compresse une liste de répertoires + fichiers.

Le script semble s'exécuter avec succès, en ce sens qu'un fichier .tar.gz utilisable est créé après l'exécution du script.

Cependant, je reçois ce message ennuyeux après la fin du script :

tar : Sortie avec un état d'échec dû à des erreurs précédentes

Je ne vois aucun message d'erreur pendant que le script fonctionne, et comme je l'ai dit, le fichier produit peut être décompressé sans avertissement ni erreur. Comme j'utilise ce fichier dans le cadre de ma sauvegarde, je veux m'assurer que je n'ignore pas quelque chose de grave.

Quelles sont les raisons possibles pour lesquelles ce message d'erreur/avertissement est produit - et puis-je l'ignorer sans risque ? Si je ne peux pas l'ignorer, quelles sont les étapes pour diagnostiquer et résoudre l'erreur ?

Je suis sous Ubuntu 10.0.4

Réponses (9)

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

Vous recevrez ce message si, pour une raison quelconque, tar ne peut pas ajouter tous les fichiers spécifiés au tar. L'une des raisons les plus courantes est de ne pas avoir les droits de lecture sur l'un des fichiers. Cela peut être un gros problème puisque vous l'utilisez pour la sauvegarde. Si vous utilisez le drapeau -v, essayez de le laisser désactivé. Cela devrait réduire la sortie et vous permettre de voir ce qui se passe.

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

le problème est l'argument,f l'argument prend le suivant comme nom de fichier, il doit donc être le dernier de l'argument

tar cvzf output.tgz folder

ou

tar -cvzf output.tgz folder

est le même et aucune erreur de prise.

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

Parfois, lors de la sauvegarde de fichiers qui pourraient changer pendant la sauvegarde comme les fichiers journaux, vous pourriez trouver utile l'option tar ‘–ignore-failed-read’ (je suis sur Debian Linux, je ne suis pas sûr pour non gnu tar).

La sortie standard et l'erreur peuvent être redirigées dans 2 fichiers différents avec quelque chose comme

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

Je trouve que c'est généralement sûr, mais faites attention car tar ne s'arrête pas …

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

J'avais le même problème et aucune des réponses ci-dessus n'a fonctionné pour moi. Cependant, j'ai trouvé que l'exécution de la commande suivante fonctionnait :

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

Les erreurs auxquelles il était fait référence dans tar: Exiting with failure status due to previous errors peuvent être identifiées en désactivant l'option -v. Après examen, les erreurs provenaient de répertoires comme /run et /sys.

En excluant ces répertoires, cela fonctionne très bien. J'espère que cela aidera tous ceux qui ont un problème similaire.

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

J'ai eu le même problème. Tout ce que j'ai fait, c'est d'enlever le tiret (“-”) de la commande.

Au lieu de le taper comme

tar -cvfz output.tar.gz folder/

essayez de le taper comme

tar cvfz output.tar.gz folder/

Je ne sais pas pourquoi le tiret posait des problèmes dans mon cas mais au moins il a fonctionné.

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

Vous avez mal compris une réponse précédente. Le problème n'est pas le -, c'est l'endroit où se trouve le f dans votre liste d'arguments.

tar cvfz target.tgz <files>

Essayera de créer une archive appelée “z”, car c'est le texte après f. Le message d'erreur est dû au fait que tar ne peut pas trouver “target.gz” à ajouter à l'archive “z”.

tar cvzf target.tgz <files>

Créera correctement le fichier target.tgz et y ajoutera des fichiers. Cela est dû au fait que target.tgz est le premier texte après l'argument 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

J'ai eu un problème similaire en débloquant un dossier que j'avais reçu. Il s'est avéré que je n'avais pas la permission d'écrire les fichiers dans l'archive appartenant à root. L'utilisation de sudo a réglé le problème.

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

Habituellement, vous pouvez ignorer ce message. S'il y a des changements (tels que des suppressions/créations/modifications de fichiers) dans l'arborescence des répertoires sous-jacents pendant la création de tar, il lancera ce message. De même, s'il y a des fichiers spéciaux comme des nœuds de périphériques, des fifos, etc.

Etes-vous sûr de ne pas voir de fichiers coupables ? Essayez avec tar cvfz yourtarball.tgz /your/path