Obtendo erros ao fazer backup de centos inteiros com tar

10

Eu estou tentando 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

e estou recebendo esse erro. Eu tentei duas vezes

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

o que preciso fazer para fazer backup completo

user1865341
fonte

Respostas:

14

Observe que seu tarcomando está sendo concluído com êxito; está apenas reclamando das entradas do soquete. Tiffany está sugerindo um mecanismo para filtrar essas mensagens de erro específicas, embora tarainda saia com um código de erro.

Você também pode alimentar uma lista de soquetes para tar's -Xopção de tê-los excluído do backup, por exemplo:

# 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

A vantagem dessa técnica é que ela torna taro código de saída mais útil (ou seja, você pode usar o código de saída para decidir se o backup foi ou não concluído com êxito).

Você também pode reduzir sua linha de comando substituindo suas outras --excludeopções por uma única -X(aka --exclude-from) e simplesmente listando-as em um arquivo.

larsks
fonte
devo excluir /runtambém?
Ar2015
o erro padrão de find / -type s -print > /tmp/sockets-to-excludedeve ser redirecionado para algum lugar (por exemplo, /dev/null); caso contrário, encontre reclamações de que alguns arquivos criados durante a pesquisa não existem.
Javier Arias
16

O fato é que o tar é bem-sucedido, mas imprime avisando que esses arquivos de soquete são ignorados

O tar GNU realmente oferece uma opção para suprimir avisos. Você pode ignorar os erros "soquete ignorado" usando o comando abaixo, que evita a execução de um comando find que pode levar muito tempo para ser concluído.

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

Este link tem mais detalhes

Aravinth C
fonte
9

Soquetes são arquivos de nível zero que são usados ​​pelos processos daemon para se comunicarem. Eles são criados e destruídos conforme necessário quando os daemons começam e param. Eles podem ser ignorados com segurança.

Você sempre pode se livrar deles com tar <my_options> 2> >(grep -v 'socket ignored' >&2)

Tiffany Walker
fonte
eu não entendi, fazer e dizer que por soquetes ignorando, será o meu ok prazo tar sem sair
user1865341