Pergunta

Eu quero copiar um servidor linux inteira que vai ser desactivado através da rede assim temos a certeza nada está perdido.

Eu fiz du / e foi dito há 60 GB de sub /

Então eu fiz rsync -r / root@newserver:/old-server e ao fazer du na dir old-server eu tenho 22 GB.

Então, por que é que a diferença? Existe algo que du pode ver, mas rsync não pode copiar?

Foi útil?

Solução

Você provavelmente já apagou arquivos que ainda não pode ser desalocadas porque há filehandles abertos sobre eles. (I anteriormente não sabem que du veria o uso daqueles, mas alguns testes mostraram que ele faz.) Você pode pesquisar isso usando lsof . As duas principais causas deste da minha experiência está excluindo Apache logs sem chutar o httpd e excluir tabelas do MySQL a partir do sistema de arquivos em vez de usar DROP TABLE.

Outras dicas

Se você tem um pouco de tempo em suas mãos, você pode descobrir exatamente qual é a diferença: cd /; find . > /tmp/old prazo no servidor antigo, cd /old-server; find . > /tmp/new no novo servidor, então vimdiff os dois arquivos para ver o que mudou <. / p>

Há algumas sistemas de arquivos especiais que você deve evitar a cópia com rsync, por exemplo, /proc, /sys, /tmp. Eles podem explicar a diferença que você vê, embora, ao que parece muito grande de qualquer maneira.

Pode haver alguns diretórios ilegíveis (por exemplo, sem r ou x sobre eles). Não me lembro se o processo correr com direitos root pode acessar essas listas sem fixar permissões em primeiro lugar.

Melhor gerar e comparar lista de arquivos e suas somas md5.

Algumas sugestões:

I tendem a usar rsync -axHSW --numeric-ids em circunstâncias semelhantes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top