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

tar: Beenden mit Fehlerstatus aufgrund vorheriger Fehler

Ich habe ein kleines Skript geschrieben, das eine Liste von Verzeichnissen + Dateien tariert und komprimiert.

Das Skript scheint erfolgreich zu laufen, da eine brauchbare .tar.gz-Datei erstellt wird, nachdem das Skript läuft.

Allerdings erhalte ich diese ärgerliche Meldung, nachdem das Skript beendet ist:

tar: Exiting with failure status due to previous errors

Ich sehe keine Fehlermeldungen, während das Skript arbeitet, und wie ich schon sagte, kann die erzeugte Datei ohne Warnungen/Fehler entpackt werden. Da ich dies als Teil meines Backups verwende, möchte ich sicherstellen, dass ich nicht etwas Ernstes übersehe.

Was sind die möglichen Gründe dafür, dass diese Fehler-/Warnmeldung erzeugt wird - und kann ich sie sicher ignorieren? Wenn ich sie nicht ignorieren kann, was sind die Schritte, um den Fehler zu diagnostizieren und zu beheben?

Ich arbeite mit Ubuntu 10.0.4

Antworten (9)

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

Sie erhalten diese Meldung, wenn tar aus irgendeinem Grund nicht alle angegebenen Dateien zum tar hinzufügen kann. Einer der häufigsten Gründe ist, dass Sie keine Leseberechtigung für eine der Dateien haben. Dies könnte ein großes Problem sein, da Sie dies für ein Backup verwenden. Wenn Sie das Flag -v verwenden, versuchen Sie, es auszulassen. Dies sollte die Ausgabe reduzieren und Sie sehen lassen, was vor sich geht.

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

das Problem ist, dass das Argument,f den nächsten als Dateinamen nimmt, also muss es das letzte des Arguments

tar cvzf output.tgz folder

sein, oder

tar -cvzf output.tgz folder

ist das gleiche und kein Take-Fehler.

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

Beim Sichern von Dateien, die sich während des Backups ändern können, wie z. B. Logdateien, kann die tar-Option ‘–ignore-failed-read’ nützlich sein (ich verwende Debian Linux, bin mir bei nicht gnu tar nicht sicher).

Standardausgabe und Fehler können in 2 verschiedene Dateien umgeleitet werden mit etwas wie:

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

Ich halte das im Allgemeinen für sicher, aber seien Sie trotzdem vorsichtig, da tar nicht aufhört …

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

Ich hatte das gleiche Problem und keine der oben genannten Antworten hat bei mir funktioniert. Ich fand jedoch heraus, dass das Ausführen des folgenden Befehls funktionierte:

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

Die Fehler, auf die in tar: Exiting with failure status due to previous errors verwiesen wurde, können durch Ausschalten der Option -v identifiziert werden. Bei der Überprüfung stellte sich heraus, dass die Fehler aus Verzeichnissen wie /run und /sys kamen.

Durch das Ausschließen dieser Verzeichnisse funktioniert es einwandfrei. Ich hoffe, dies hilft jedem, der ein ähnliches Problem hat.

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

Ich hatte das gleiche Problem. Alles, was ich getan habe, war, den Bindestrich (“-”) aus dem Befehl zu entfernen.

Anstatt es als

tar -cvfz output.tar.gz folder/

einzutippen, versuchen Sie es als

tar cvfz output.tar.gz folder/

Ich weiß nicht, warum der Bindestrich in meinem Fall Probleme verursachte, aber zumindest hat es funktioniert.

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

Sie haben eine frühere Antwort missverstanden. Das Problem ist nicht das -, sondern die Stelle, an der das f in Ihrer Argumentliste steht.

tar cvfz target.tgz <files>

wird versuchen, ein Archiv mit dem Namen “z” zu erstellen, da dies der Text nach f ist. Die Fehlermeldung kommt, weil tar die Datei “target.gz” nicht finden kann, um sie dem Archiv “z” hinzuzufügen.

tar cvzf target.tgz <files>

wird target.tgz korrekt erstellen und Dateien dazu hinzufügen. Das liegt daran, dass target.tgz der erste Text nach dem Argument f ist.

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

Ich hatte ein ähnliches Problem beim Enttarnen einer Datei, die ich erhalten hatte. Es stellte sich heraus, dass ich keine Berechtigung hatte, die Dateien im Archiv zu schreiben, die root gehören. Die Verwendung von sudo hat das Problem behoben.

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

Normalerweise können Sie diese Meldung ignorieren. Wenn während der Tar-Erstellung Änderungen (z. B. Löschen/Erstellen/Modifizieren von Dateien) am zugrundeliegenden Verzeichnisbaum vorgenommen wurden, wird diese Meldung ausgegeben. Auch wenn es spezielle Dateien wie Geräteknoten, Fifos usw. gibt, verursachen sie diese Warnung.

Sind Sie sicher, dass Sie keine schuldigen Dateien sehen können? Versuchen Sie es mit tar cvfz yourtarball.tgz /your/path