Ottenere errori durante il backup di interi centesimi con tar


10

Sto provando questo comando

tar cvpzf /TEMP_BACKUPS/backup.tgz --exclude=/proc --exclude=/lost+found  --exclude=/tmp --exclude=/TEMP_BACKUPS --exclude=/mnt --exclude=/sys / > /TEMP_BACKUPS/mylog.txt

e sto ricevendo questo errore. Ci ho provato due volte

tar: Removing leading `/' from member names
tar: /dev/log: socket ignored
tar: Removing leading `/' from hard link targets
tar: /selinux/policy: Cannot open: Invalid argument
tar: /var/spool/postfix/public/flush: socket ignored
tar: /var/spool/postfix/public/cleanup: socket ignored
tar: /var/spool/postfix/public/showq: socket ignored
tar: /var/spool/postfix/private/defer: socket ignored
tar: /var/spool/postfix/private/virtual: socket ignored
tar: /var/spool/postfix/private/proxywrite: socket ignored
tar: /var/spool/postfix/private/verify: socket ignored
tar: /var/spool/postfix/private/anvil: socket ignored
tar: /var/spool/postfix/private/lmtp: socket ignored
tar: /var/spool/postfix/private/bounce: socket ignored
tar: /var/spool/postfix/private/relay: socket ignored
tar: /var/spool/postfix/private/scache: socket ignored
tar: /var/spool/postfix/private/retry: socket ignored
tar: /var/spool/postfix/private/error: socket ignored
tar: /var/spool/postfix/private/rewrite: socket ignored
tar: /var/spool/postfix/private/tlsmgr: socket ignored
tar: /var/spool/postfix/private/local: socket ignored
tar: /var/spool/postfix/private/discard: socket ignored
tar: /var/spool/postfix/private/trace: socket ignored
tar: /var/spool/postfix/private/smtp: socket ignored
tar: /var/spool/postfix/private/proxymap: socket ignored
tar: /var/lib/mysql/mysql.sock: socket ignored
tar: /var/www/html/run/wsgi.1458.0.1.sock: socket ignored
tar: /var/www/html/run/wsgi.4861.1.1.sock: socket ignored
tar: /var/www/html/run/wsgi.1178.0.1.sock: socket ignored
tar: /var/www/html/run/wsgi.1179.0.1.sock: socket ignored
tar: /var/run/dbus/system_bus_socket: socket ignored
tar: /var/run/abrt/abrt.socket: socket ignored
tar: /var/run/rpcbind.sock: socket ignored
tar: /var/run/portreserve/socket: socket ignored
tar: /var/run/nscd/socket: socket ignored
tar: Exiting with failure status due to previous errors

cosa devo fare per eseguire il backup completo

Risposte:


14

Si noti che il tarcomando è stato completato correttamente; si sta solo lamentando delle voci del socket. Tiffany sta suggerendo un meccanismo per filtrare quei particolari messaggi di errore, anche se taruscirà comunque con un codice di errore.

Si potrebbe anche nutrire una lista dei socket a tar's -Xpossibilità di averli esclusi dal backup, ad esempio:

# find / -type s -print > /tmp/sockets-to-exclude
# tar cvpzf /TEMP_BACKUPS/backup.tgz -X /tmp/sockets-to-exclude \
  --exclude=/proc --exclude=/lost+found  --exclude=/tmp \
  --exclude=/TEMP_BACKUPS --exclude=/mnt --exclude=/sys / > /TEMP_BACKUPS/mylog.txt

Il vantaggio di questa tecnica è che rende tarpiù utile il codice di uscita (ovvero, è possibile utilizzare il codice di uscita per decidere se il backup è stato completato correttamente).

Puoi anche abbreviare la tua riga di comando sostituendo le altre --excludeopzioni con un singolo -X(aka --exclude-from) e semplicemente elencandole in un file.


dovrei escludere anche io /run?
ar2015,

l'errore standard di find / -type s -print > /tmp/sockets-to-excludedovrebbe essere reindirizzato da qualche parte (ad esempio, /dev/null), altrimenti trovare lamentele che alcuni file creati durante la ricerca non esistono.
Javier Arias,

16

Il fatto è che tar ha successo, ma stampa l'avvertimento che quei file socket vengono ignorati

Tar GNU in realtà fornisce un'opzione per sopprimere gli avvisi. È possibile ignorare gli errori "socket ignorato" utilizzando il comando seguente che evita di eseguire un comando find che potrebbe richiedere molto tempo per il completamento.

tar --warning='no-file-ignored' -cpzf  backup_name.tar.gz  /folder_to_backup

Questo link ha maggiori dettagli


9

I socket sono file di livello zero che vengono utilizzati dai processi daemon per comunicare tra loro. Vengono creati e distrutti quando necessario quando i demoni iniziano e si fermano. Possono essere tranquillamente ignorati.

Puoi sempre sbarazzartene con tar <my_options> 2> >(grep -v 'socket ignored' >&2)


non ho capito, vuoi dire che ignorando i socket, il mio tar funzionerà bene senza uscire
user1865341
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.