Dado que o tar ignorou meus 2 sockets, como faço backup e depois restauro minha pasta de login?

6

Eu fiz um backup de rede da minha área de login em preparação para reformatar o volume em que ele reside para torná-lo inicializável no meu antigo Power Mac G5 executando a versão mais recente do Leopard.

Embora eu não acredite que esse sintoma seja uma função da invocação tar real, aqui está o comando real para conclusão:

   bill@r2d2-2:~
   [108] (sudo tar cf - -C /Volumes/usr1 Users) | gzip -c - | ssh whmcclos@mbp \
             'cat > /Volumes/link2TMS/r2d2_usr1_Users.tar.gz'
   tar: Users/bill/Library/Acrobat User Data/8.0_ppc/Synchronizer/Commands: socket ignored
   tar: Users/bill/Library/Acrobat User Data/8.0_ppc/Synchronizer/Notification: socket ignored

Aqui estão os dois arquivos de soquete que tar está ignorando

bill@r2d2:~/Library/Acrobat User Data/8.0_ppc/Synchronizer
[11] ls -larhdt *
drwx------  3 bill  staff   102B Jun  4  2010 metadata
-rw-r--r--  1 bill  staff     0B Jan 20 13:05 adobesynchronizersu80
srwxr-xr-x  1 bill  staff     0B Jan 20 13:05 Notification
srwxr-xr-x  1 bill  staff     0B Jan 20 13:05 Commands

Não trabalhei com a criação de soquetes em alguns anos e saberei o que fazer quando tiver uma dica. Como o título diz, como fazer backup e restaurar esses arquivos, uma vez que tar os ignorou?

    
por Billy McCloskey 23.01.2014 / 02:28

1 resposta

6

Você não faz isso.

Soquetes locais Unix são criados assim que um programa tenta escutar no caminho dado para conexões, e apesar de ser um tipo de arquivo eles agem apenas como ponteiros para estruturas na memória; então eles são úteis apenas enquanto o programa ainda estiver rodando (e somente dentro da mesma máquina; sem NFS ou qualquer coisa assim).

Depois que o programa é encerrado, o arquivo de soquete não é mais útil (e é normalmente excluído pelo próprio programa); na verdade, se o programa for reiniciado, ele tem que deletar o antigo socket antes de escutar no mesmo caminho - caso contrário ele receberia um "Endereço já em uso" (o mesmo que se dois programas estivessem tentando para pegar a mesma porta TCP).

Isso é um pouco diferente dos pipes (aka fifos), que funcionam de uma maneira muito mais simples (um processo grava, um processo lê) e, portanto, são reutilizáveis; um pipe nomeado pode ser criado usando os comandos mkfifo ou mknod p … .

    
por 23.01.2014 / 03:06