Por que o scp está copiando mais bytes do que deveria?

1

Estou copiando o Xcode.app de um computador para outro usando o scp e parece que ele copiou mais do que o tamanho do arquivo e ainda está copiando. Ele 4.94GB (eu não compri-lo), mas nettop na máquina de destino diz 7430MB foram copiados até agora e não parou ainda. nettop na máquina de origem não tem nenhuma atividade que corresponda à cópia.

O comando que eu usei

scp -rp [email protected]:/Applications/Xcode.app /Applications/

nettop na máquina de destino:

ssh.636                                                                                         7662 MiB          21 MiB   178 KiB  2029 KiB  1044 B
tcp4 192.168.16.108:50145<->192.168.16.178:22                    en1     Established        7662 MiB          21 MiB   178 KiB  2029 KiB  1044 B    13.53 ms   512 KiB   128 KiB        BE

Alguma idéia de por que ele copiou mais de 7 GB quando o arquivo tem apenas 4,94 GB? As máquinas de origem e destino são o iMac e o Mac mini, copiando através de uma rede local sem fio.

Atualização : Cópia finalizada e quando eu verifico o tamanho do Xcode na máquina de destino, são 10,07 GB. Eu não entendo como o Xcode deveria ter dobrado de tamanho durante a cópia. Minha única teoria é que os diretórios .app já estão compactados e que o scp os descompacta.

Felicidades!

    
por paulvs 21.06.2014 / 20:01

1 resposta

2

Aqui está uma página descrevendo como o protocolo SCP funciona. O fato notável é que ele só pode transferir arquivos e diretórios; não há suporte a protocolo para links simbólicos. Na verdade, o SCP tratará cada link simbólico como se fosse um arquivo ou diretório real.

Minha cópia do Xcode.app é de 4.936.956.797 bytes de acordo com o sistema operacional, e find me diz que possui 7.499 links simbólicos. Podemos enganar scp para fingir copiar o Xcode.app para ver quantos dados ele grava:

$ scp -rf Xcode.app < /dev/zero | wc -c
 8746268376

E podemos fazer o mesmo com tar :

$ tar cf - Xcode.app | wc -c
 5018552320

O Tar pode manipular links simbólicos, portanto, ele grava um pouco mais de dados do que está na estrutura de diretórios. O Scp não pode manipular links simbólicos e está expandindo cada link em um arquivo ou diretório real.

    
por 22.06.2014 / 00:25

Tags