Como copiar o diretório de um servidor Linux para outro com um período intermediário mínimo?

2

Eu tenho um diretório bastante grande em um servidor (mais de 4.000 arquivos), que gostaria de copiar para outro servidor (que contém uma versão anterior desse diretório). rsync é a primeira opção, mas colocará a pasta de destino no status de espera por um longo período de tempo (mais de um minuto).

Eu gostaria de fazer um pouco diferente:

  1. gzip a pasta de origem
  2. scp do arquivo para o servidor de destino
  3. gunzip o arquivo lá
  4. exclua o arquivo na origem e o destino

Qual é a melhor maneira de realizar tudo isso?

    
por yegor256 08.06.2012 / 10:52

5 respostas

8

rsync tem --delay-updates , que parece ser o que você precisa:

«…

This option puts the temporary file from each updated file into a holding directory until the end of the transfer, at which time all the files are renamed into place in rapid succession. This attempts to make the updating of the files a little more atomic. By default the files are placed into a directory named ".~tmp~" in each

… »

    
por 08.06.2012 / 11:02
3

O caminho mais rápido, se você tiver espaço, é rsync duas vezes. Mantenha duas cópias dos arquivos na máquina de destino. Primeiro, faça um rsync remoto para atualizar a cópia inativa. Em seguida, faça um local rsync para atualizar a cópia ativa da cópia inativa.

    
por 08.06.2012 / 11:00
2

rsync para uma cópia fria, então apenas mude um symlink e delete a antiga cópia ativa

    
por 08.06.2012 / 11:10
0

Interrompa o serviço da Web no servidor de destino por 10 minutos, faça a atualização de qualquer maneira que achar conveniente (o rsync está bem) e inicie o serviço da Web novamente.

    
por 08.06.2012 / 11:10
-2

1-2-3: tar -c -O <source folder> | gzip -c | ssh <destination server> "gzip -d | tar -x "

4: rm <source folder>

    
por 08.06.2012 / 10:59

Tags