J'ai écrit un petit script qui tars et compresse une liste de répertoires + fichiers.
Le script semble fonctionner avec succès, en ce sens qu'un fichier .tar.gz utilisable est créé après son exécution.
Cependant, je reçois ce message gênant une fois le script terminé:
tar: Sortie avec statut d'échec en raison d'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 avertissements ni erreurs. Puisque j'utilise ceci dans le cadre de ma sauvegarde, je veux m'assurer de ne pas ignorer quelque chose de grave.
Quelles sont les raisons possibles pour lesquelles ce message d'erreur/avertissement est généré - et puis-je l'ignorer en toute sécurité ?. Si je ne peux pas l'ignorer, quelles sont les étapes à suivre pour diagnostiquer et résoudre l'erreur?
Je cours sur Ubuntu 10.0.4
Vous recevrez ce message si, pour une raison quelconque, tar ne peut pas ajouter tous les fichiers spécifiés à tar. L'une des plus courantes est de ne pas avoir l'autorisation de lecture sur l'un des fichiers. Cela pourrait être un gros problème puisque vous l'utilisez pour la sauvegarde. Si vous utilisez l'indicateur -v
, essayez de le laisser désactivé. Cela devrait réduire le rendement et vous permettre de voir ce qui se passe.
le problème est l'argument, l'argument f
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.
J'avais le même problème et aucune des réponses ci-dessus n'a fonctionné pour moi. Cependant, j'ai constaté 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 tels que /run
et /sys
.
En excluant ces répertoires, cela fonctionne très bien. J'espère que cela aide quelqu'un avec un problème similaire.
Parfois, lors de la sauvegarde de fichiers susceptibles de changer pendant la sauvegarde, tels que les fichiers journaux, vous pouvez trouver utile l’option tar «--ignore-failed-read» (je suis sous Debian Linux, ce n’est pas sûr pour les non-gnu tar).
La sortie standard et les erreurs 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 cela est généralement sans danger, mais s'il vous plaît soyez prudent car le goudron ne va pas s'arrêter ...
J'ai eu le même problème. Tout ce que j'ai fait était de supprimer le tiret ("-") de la commande.
Au lieu de le taper comme
tar -cvfz output.tar.gz folder /
essayez de taper comme
dossier tar cvfz output.tar.gz /
Je ne sais pas pourquoi le tiret posait des problèmes dans mon cas, mais au moins cela a fonctionné.
Vous avez mal compris une réponse précédente. Le problème n’est pas le -
, c’est là que se trouve la f
dans votre liste d’arguments.
tar cvfz target.tgz <files>
Je vais essayer de créer une archive appelée "z", car c'est le texte après f
. Le message d'erreur vient du fait que tar ne peut pas trouver "target.gz" à ajouter à l'archive "z".
tar cvzf target.tgz <files>
Créera correctement target.tgz et y ajoutera des fichiers. C'est parce que target.tgz est le premier texte après l'argument f
.
Habituellement, vous pouvez ignorer ce message. Si des modifications (telles que des suppressions/créations/modifications de fichiers) ont été apportées à l’arborescence de répertoires sous-jacente lors de la création de l’archive tar, ce message sera envoyé. De plus, s’il existe des fichiers spéciaux tels que des nœuds de périphériques, fifos, etc., ils provoqueront cet avertissement.
Êtes-vous sûr de ne voir aucun fichier coupable? Essayez avec tar cvfz yourtarball.tgz /your/path