Obteniendo errores al hacer copias de seguridad de centos completos con alquitrán

10

Estoy intentando este 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

y recibo este error. Lo he intentado dos veces

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

¿Qué necesito hacer para hacer una copia de seguridad completa?

usuario1865341
fuente

Respuestas:

14

Tenga en cuenta que su tarcomando se está completando con éxito; solo se queja de las entradas de socket. Tiffany sugiere un mecanismo para filtrar esos mensajes de error en particular, aunque tartodavía saldrá con un código de error.

También puede alimentar una lista de sockets a tarla -Xopción de que se excluyan de la copia de seguridad, por ejemplo:

# 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

La ventaja de esta técnica es que hace que tarel código de salida sea más útil (es decir, puede usar el código de salida para decidir si la copia de seguridad se completó o no con éxito).

También puede acortar su línea de comando reemplazando sus otras --excludeopciones con una sola -X(también conocida --exclude-from) y simplemente enumerándolas en un archivo.

larsks
fuente
¿Debo excluir /runtambién?
ar2015
el error estándar de find / -type s -print > /tmp/sockets-to-excludedebe ser redirigido a algún lugar (por ejemplo, /dev/null), de lo contrario encontrará quejas de que algunos archivos creados durante la búsqueda no existen.
Javier Arias
16

El hecho es que tar es exitoso, pero imprime la advertencia de que esos archivos de socket son ignorados

GNU tar realmente proporciona una opción para suprimir las advertencias. Puede ignorar los errores de "socket ignorado" utilizando el siguiente comando que evita ejecutar un comando de búsqueda que puede tardar mucho tiempo en completarse.

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

Este enlace tiene más detalles

Aravinth C
fuente
9

Los sockets son archivos de nivel cero que son utilizados por los procesos de daemon para comunicarse entre sí. Se crean y destruyen según sea necesario cuando los demonios comienzan y se detienen. Pueden ser ignorados con seguridad.

Siempre puedes deshacerte de ellos con tar <my_options> 2> >(grep -v 'socket ignored' >&2)

Tiffany Walker
fuente
yo no entiendo, qué u quiere decir que por tomas haciendo caso omiso, lo hará mi tar bien sin salir de ejecución
user1865341