it-swarm.com.de

tar: Beenden mit Fehlerstatus aufgrund vorheriger Fehler

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

Das Skript scheint erfolgreich ausgeführt zu werden, da eine verwendbare .tar.gz-Datei erstellt wird, nachdem das Skript ausgeführt wurde.

Nach Abschluss des Skripts erhalte ich jedoch diese ärgerliche Meldung:

tar: Beenden mit Fehlerstatus aufgrund vorheriger Fehler

Ich sehe keine Fehlermeldungen, während das Skript arbeitet, und wie gesagt, die erzeugte Datei kann ohne Warnungen/Fehler dekomprimiert werden. Da ich dies als Teil meiner Sicherung verwende, möchte ich sicherstellen, dass ich etwas Ernstes nicht ignoriere.

Was sind die möglichen Gründe, warum diese Fehler-/Warnmeldung ausgegeben wird - und kann ich sie ignorieren? Wenn ich es nicht ignorieren kann, welche Schritte sind erforderlich, um den Fehler zu diagnostizieren und zu beheben?

Ich laufe auf Ubuntu 10.0.4

71
morpheous

Sie erhalten diese Meldung, wenn tar aus irgendeinem Grund nicht alle angegebenen Dateien zum tar hinzufügen kann. Eine, wenn die häufigste nicht über Leserechte für eine der Dateien verfügt. Dies könnte ein großes Problem sein, da Sie dies für die Sicherung verwenden. Wenn Sie das Flag -v verwenden, lassen Sie es deaktiviert. Dies sollte die Ausgabe reduzieren und Sie sehen lassen, was los ist.

91
KeithB

das problem ist das argument, f argument nimm das nächste als dateinamen, also muss es das letzte von argument sein

tar cvzf output.tgz folder

oder

tar -cvzf output.tgz folder

ist das selbe und kein take error.

22
Andrea Monni

Ich hatte das gleiche Problem und keine der obigen Antworten hat für mich funktioniert. Ich fand jedoch, dass das Ausführen des folgenden Befehls funktioniert:

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 Deaktivieren der Option -v identifiziert werden. Bei der Überprüfung kamen die Fehler aus Verzeichnissen wie /run und /sys.

Durch Ausschließen dieser Verzeichnisse funktioniert es einwandfrei. Hoffe das hilft jedem mit einem ähnlichen Problem.

5
DomainsFeatured

Manchmal, wenn Sie Dateien sichern, die sich während der Sicherung ändern, wie z. B. Protokolldateien, kann die tar-Option '--ignore-failed-read' nützlich sein (unter Debian Linux bin ich mir nicht sicher, ob es sich um Nicht-Gnu-Tar handelt).

Standardausgabe und Fehler können in 2 verschiedenen Dateien umgeleitet werden:

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 finde das im Allgemeinen sicher, aber bitte seien Sie vorsichtig, da Teer nicht aufhört ...

5

Ich hatte das gleiche problem Ich habe nur den Bindestrich ("-") aus dem Befehl entfernt.

Anstatt es als zu tippen

tar -cvfz output.tar.gz ordner /

versuchen Sie es als

tar cvfz output.tar.gz ordner /

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

3
jack

Sie haben eine frühere Antwort falsch verstanden. Das Problem ist nicht der -, sondern die f in Ihrer Argumentliste.

tar cvfz target.tgz <files>

Versucht, ein Archiv mit dem Namen "z" zu erstellen, da dies der Text nach f ist. Die Fehlermeldung ist, weil tar "target.gz" nicht finden kann, um es dem Archiv "z" hinzuzufügen.

tar cvzf target.tgz <files>

Erstellt die Datei target.tgz korrekt und fügt ihr Dateien hinzu. Dies liegt daran, dass target.tgz der erste Text nach dem Argument f ist.

1
Thornbury

Normalerweise können Sie diese Nachricht ignorieren. Wenn während der Tar-Erstellung Änderungen am zugrunde liegenden Verzeichnisbaum vorgenommen werden (z. B. Löschen/Erstellen/Ändern von Dateien), wird diese Meldung ausgegeben. Auch wenn spezielle Dateien wie Geräteknoten, Fifos usw. vorhanden sind, wird diese Warnung ausgegeben.

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

0