Como transferir todo o conteúdo de uma pasta (recursivamente) de um servidor para outro?

0

Eu tenho uma pasta /home/jbruni em um VPS executando o Ubuntu Server 10.04 LTS (Lucid Lynx).

Estou prestes a desligar este VPS e mover algumas coisas dele para um novo VPS, também executando a mesma versão do Ubuntu.

No momento, quero mover todo o conteúdo em /home/jbruni do VPS "antigo" para o novo.

1) Eu quero preservar todas as configurações de permissão e propriedade de arquivos (não quero usar chown ou chmod após a transferência). [Nota: o novo VPS já possui os mesmos usuários / grupos com os mesmos UIDs / GIDs.]

2) Eu quero preservar todos os links simbólicos e hardlinks, embora eu acredite que não haja um único hardlink nesse caso. Eu tenho muitos links simbólicos, tanto para arquivos quanto para pastas, todos apontando para locais dentro da própria pasta /home/jbruni .

3) Eu realmente gostaria de preservar data e hora (mtime, atime, ctime). [Se não for possível, ok ... não é tão ruim assim.]

4) Eu não tenho espaço em disco suficiente para criar um arquivo grande contendo tudo no VPS "antigo" antes de transferi-lo (como um tarball grande). De qualquer forma, eu posso adquirir este espaço extra temporário se realmente for necessário.

Então, o que eu quero é como um "espelho" da pasta de origem. Existe uma maneira de conseguir isso facilmente? (Ou mesmo não tão facilmente?)

Obrigado!

    
por J. Bruni 17.10.2011 / 02:13

2 respostas

6

rsync !

rsync -azv -e ssh ./localdirectory/ user@otherserver:/remote/dir

-a é o bad boy aqui. Na verdade, é um meta-argumento que chama -rlptgoD , o que significa, entre outras coisas:

  • Recursivo
  • Preservar links simbólicos
  • Preservar permissões
  • Preservar horários de modificação
  • Preservar grupo
  • Preservar o proprietário
  • E preserva coisas especiais

Ele não preservará hardlinks porque os hardlinks são arquivos (bem, na verdade é um ponteiro para um inode que armazena um nome de arquivo - mas é o mesmo que um arquivo normal - quando você faz um hardlink) está apenas dando a um inode um nome de arquivo extra). Isso não deve ser um problema para você, porque eles são um OMI muito raro.

-z tentará compactar os dados no fluxo (acelere um pouco).

-v irá garantir que está fornecendo muitos resultados.

    
por Oli 17.10.2011 / 02:22
1

Eu usaria o rsync para isso. Eu acredito que ele é instalado por padrão no Ubuntu, mas se não for, então você pode instalá-lo a partir dos arquivos.

    
por Jo-Erlend Schinstad 17.10.2011 / 02:17