ssh tar copying - arquivos ausentes

1

No diretório de cópia "home" (da máquina remota) para a máquina local usando o seguinte comando:

ssh [email protected] 'tar -cz -C /home/*' | tar -zxv

O número de arquivos após a transação não coincidir. Alguns arquivos nunca foram copiados.

Alguém já experimentou problemas semelhantes?

    
por Frankie 21.06.2011 / 16:57

2 respostas

1

Um problema com o uso de tar para copiar arquivos é que o antigo formato tar POSIX ( ustar ) tem um comprimento limitado de 100 bytes para armazenar links físicos. Ele pode lidar com nomes mais longos , então, contanto que seus arquivos tenham um único link, está tudo bem. Mas quando o tar encontra um inode pela segunda vez, ele produz um registro de hard link, com apenas 100 bytes para o nome. Se o nome for muito longo, o segundo link não será armazenado no arquivo.

Eu me lembro de implementações de tar que descartaram esses links com mensagens de diagnóstico, mas ainda saíram com um status de 0. Talvez seu tar seja ainda pior e silenciosamente as descarte.

O novo formato tar POSIX ( pax ) não tem esse limitação. Tente usar pax em vez de tar ou tar com as opções corretas. Versões atuais do padrão GNU tar para o formato pax, e se queixam corretamente se forem instruídas a produzir um arquivo ustar onde os nomes não se encaixam.

    
por 22.06.2011 / 01:01
3

Use o rsync em seu lugar. É mais rápido e seguro.

rsync -avuz [email protected]:/home/ /srv/backups/home/

Depois, você pode compactar os dados.

tar cvzf /srv/backups/home_'date +%F'.tgz -C /srv/backups home
    
por 21.06.2011 / 19:35

Tags