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

teer: Afsluiten met foutstatus vanwege eerdere fouten

Ik heb een scriptje geschreven dat een lijst van mappen en bestanden fileert en comprimeert.

Het script lijkt succesvol te draaien, in die zin dat er een bruikbaar .tar.gz bestand wordt aangemaakt nadat het script is uitgevoerd.

Ik krijg echter deze vervelende boodschap nadat het script is afgelopen:

tar: Exiting with failure status due to previous errors

Ik zie geen foutmeldingen terwijl het script werkt, en zoals ik al zei, het geproduceerde bestand kan uitgepakt worden zonder waarschuwingen/fouten. Aangezien ik dit gebruik als onderdeel van mijn backup, wil ik er zeker van zijn dat ik niet iets ernstigs over het hoofd zie.

Wat zijn de mogelijke redenen dat dit fout/waarschuwingsbericht wordt geproduceerd - en kan ik het veilig negeren? Als ik het niet kan negeren, wat zijn dan de stappen om de fout te diagnosticeren en op te lossen?

Ik draai op Ubuntu 10.0.4

Antwoorden (9)

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

Die melding krijg je als tar om de een of andere reden niet alle gespecificeerde bestanden aan de tar kan toevoegen. Een van de meest voorkomende is het niet hebben van leesrechten op een van de bestanden. Dit kan een groot probleem zijn aangezien u dit gebruikt voor backup. Als u de -v vlag gebruikt, probeer deze dan uit te laten. Dit zou de uitvoer moeten verminderen en u laten zien wat er aan de hand is.

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

het probleem is het argument,f argument neemt de volgende als de bestandsnaam, dus het moet de laatste van argument

tar cvzf output.tgz folder

of

tar -cvzf output.tgz folder

is hetzelfde en geen take fout.

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

Voor backups van bestanden die tijdens de backup kunnen veranderen, zoals logbestanden, kan de tar optie ‘–ignore-failed-read’ handig zijn (ik gebruik Debian Linux, ik weet het niet zeker voor niet gnu tar).

Standaard output en error kunnen in 2 verschillende bestanden worden omgeleid met zoiets als:

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

Ik vind dit over het algemeen veilig, maar wees voorzichtig want tar zal niet stoppen …

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

Ik had hetzelfde probleem en geen van de bovenstaande antwoorden werkte voor mij. Ik ontdekte echter dat het uitvoeren van het volgende commando werkte:

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

De fouten waarnaar verwezen werd in tar: Exiting with failure status due to previous errors kunnen geïdentificeerd worden door de -v optie uit te schakelen. Bij nader inzien kwamen de fouten uit directories als /run en /sys.

Door deze directories uit te sluiten, werkt het prima. Hopelijk helpt dit iedereen met een soortgelijk probleem.

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

Ik had hetzelfde probleem. Het enige wat ik deed was het streepje (“-”) uit het commando verwijderen.

In plaats van het te typen als

tar -cvfz output.tar.gz folder/

probeer het te typen als

tar cvfz output.tar.gz folder/

Ik weet niet waarom het streepje in mijn geval problemen veroorzaakte, maar het werkte in ieder geval.

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

Je hebt een eerder antwoord verkeerd begrepen. Het probleem is niet de -, het is waar de f staat in je argumentenlijst.

tar cvfz target.tgz <files>

Zal proberen een archief te maken met de naam “z”, want dat is de tekst na f. De foutmelding komt omdat tar “target.gz” niet kan vinden om aan archief “z” toe te voegen.

tar cvzf target.tgz <files>

Maakt target.tgz correct aan en voegt er bestanden aan toe. Dit komt omdat target.tgz de eerste tekst is na het f argument.

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

Ik had een gelijkaardig probleem met het untarren van een bestand dat ik had ontvangen. Het bleek dat ik geen toestemming had om de bestanden in het archief, eigendom van root, te schrijven. Met sudo was het opgelost.

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

Normaal gesproken kun je die melding negeren. Als er veranderingen zijn (zoals het verwijderen/aanmaken/wijzigen van bestanden) in de onderliggende mapstructuur tijdens het aanmaken van tar, zal die melding worden gegeven. Ook als er speciale bestanden zijn zoals device nodes, fifos enzovoort, zullen ze die waarschuwing veroorzaken.

Weet je zeker dat je geen schuldige bestanden kunt zien? Probeer het met tar cvfz yourtarball.tgz /your/path