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

tar: Esce con lo stato di fallimento a causa di errori precedenti

Ho scritto un piccolo script che tara e comprime una lista di directory + file.

Lo script sembra funzionare con successo, nel senso che viene creato un file .tar.gz utilizzabile dopo l'esecuzione dello script.

Tuttavia, ottengo questo fastidioso messaggio dopo la fine dello script:

tar: Exiting with failure status due to previous errors

Non vedo alcun messaggio di errore mentre lo script sta lavorando, e come ho detto, il file prodotto può essere decompresso senza avvisi/errori. Dato che lo sto usando come parte del mio backup, voglio essere sicuro che non sto ignorando qualcosa di serio.

Quali sono le possibili ragioni per cui viene prodotto questo messaggio di errore/avvertimento - e posso tranquillamente ignorarlo? Se non posso ignorarlo, quali sono i passi per diagnosticare e risolvere l'errore?

Sto girando su Ubuntu 10.0.4

Risposte (9)

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

Otterrete questo messaggio se, per qualsiasi ragione, tar non può aggiungere tutti i file specificati al tar. Uno dei più comuni è che non ha il permesso di lettura su uno dei file. Questo potrebbe essere un grosso problema dato che lo stai usando per il backup. Se stai usando il flag -v, prova a lasciarlo disattivato. Questo dovrebbe ridurre l'output e farti vedere cosa sta succedendo.

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

il problema è l'argomento, l'argomento f prende il prossimo come nome del file, quindi deve essere l'ultimo dell'argomento

tar cvzf output.tgz folder

o

tar -cvzf output.tgz folder

è lo stesso e nessun errore di presa.

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

A volte facendo il backup di file che potrebbero cambiare durante il backup, come i file di log, potreste trovare utile l'opzione tar ‘–ignore-failed-read’ (sono su Debian Linux, non sono sicuro per tar non gnu).

L'output standard e l'errore possono essere reindirizzati in 2 file diversi con qualcosa come:

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

Trovo che questo sia generalmente sicuro, ma fate attenzione perché tar non si ferma …

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

Stavo avendo lo stesso problema e nessuna delle risposte precedenti ha funzionato per me. Tuttavia, ho scoperto che l'esecuzione del seguente comando ha funzionato:

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

Gli errori che si riferivano a tar: Exiting with failure status due to previous errors possono essere identificati disattivando l'opzione -v. Dopo aver esaminato, gli errori provenivano da directory come /run e /sys.

escludendo queste directory, funziona bene. Spero che questo aiuti chiunque abbia un problema simile.

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

Ho avuto lo stesso problema. Tutto quello che ho fatto è stato rimuovere il trattino (“-”) dal comando.

Invece di scriverlo come

tar -cvfz output.tar.gz folder/

prova a scriverlo come

tar cvfz output.tar.gz folder/

Non so perché il trattino stava causando problemi nel mio caso ma almeno ha funzionato.

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

Hai frainteso una risposta precedente. Il problema non è lo -, è dove lo f è nella tua lista di argomenti.

tar cvfz target.tgz <files>

Cercherà di creare un archivio chiamato “z”, poiché questo è il testo dopo f. Il messaggio di errore è perché tar non riesce a trovare “target.gz” da aggiungere all'archivio “z”.

tar cvzf target.tgz <files>

creerà correttamente target.tgz e vi aggiungerà i file. Questo perché target.tgz è il primo testo dopo l'argomento 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

Ho avuto un problema simile disinstallando un file che avevo ricevuto. Si è scoperto che non avevo il permesso di scrivere i file nell'archivio di proprietà di root. Usando sudo ho risolto il problema.

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

Di solito potete ignorare quel messaggio. Se ci sono dei cambiamenti (come cancellazioni/creazioni/modifiche di file) all'albero delle directory sottostanti durante la creazione del tar, verrà lanciato quel messaggio. Inoltre se ci sono file speciali come nodi di dispositivi, fifo e così via, causeranno quell'avviso.

Sei sicuro di non poter vedere alcun file colpevole? Prova con tar cvfz yourtarball.tgz /your/path