Obtenir des erreurs lors de la sauvegarde de centos entiers avec tar

10

J'essaye cette commande

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

et je reçois cette erreur. J'ai essayé deux fois

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

que dois-je faire pour faire une sauvegarde complète

user1865341
la source

Réponses:

14

Notez que votre tarcommande se termine avec succès; c'est juste se plaindre des entrées de socket. Tiffany propose un mécanisme de filtrage de ces messages d'erreur particuliers, bien tarqu'il se termine toujours avec un code d'erreur.

Vous pouvez également alimenter une liste des sockets tarde » -Xoption de les exclure de la sauvegarde, par exemple:

# 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

L'avantage de cette technique est qu'elle rend tarle code de sortie de plus utile (c'est-à-dire que vous pouvez utiliser le code de sortie pour décider si la sauvegarde s'est terminée avec succès).

Vous pouvez également raccourcir votre ligne de commande en remplaçant vos autres --excludeoptions par une seule -X(aka --exclude-from) et en les répertoriant simplement dans un fichier.

larsks
la source
dois-je également exclure /run?
ar2015 du
l'erreur standard de find / -type s -print > /tmp/sockets-to-excludedevrait être redirigée quelque part (par exemple, /dev/null), sinon vous trouverez des plaintes selon lesquelles certains fichiers créés pendant la recherche n'existent pas.
Javier Arias
16

Le fait est que tar a réussi, mais affiche un avertissement indiquant que ces fichiers socket sont ignorés

GNU tar fournit en fait une option pour supprimer les avertissements. Vous pouvez ignorer les erreurs «socket ignoré» en utilisant la commande ci-dessous, ce qui évite d'exécuter une commande find qui pourrait prendre un certain temps.

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

Ce lien a plus de détails

Aravinth C
la source
9

Les sockets sont des fichiers de niveau zéro qui sont utilisés par les processus démon pour communiquer entre eux. Ils sont créés et détruits si nécessaire lorsque les démons démarrent et s'arrêtent. Ils peuvent être ignorés en toute sécurité.

Vous pouvez toujours vous en débarrasser avec tar <my_options> 2> >(grep -v 'socket ignored' >&2)

Tiffany Walker
la source
je ne comprenais pas, voulez-vous dire qu'en ignorant les sockets, mon tar fonctionnera-t-il correctement sans quitter
user1865341