Como copio um arquivo de um servidor para outro sem fazer o download primeiro?

1

É possível copiar um arquivo de um servidor para outro sem fazer o download primeiro?

Eu tenho um arquivo de backup de 10 GB que estou querendo copiar do meu servidor de produção para o meu servidor de teste.

Atualmente, estou apenas fazendo isso por meio de Transmitir, mas isso faz o download do arquivo primeiro e depois o carrega.

Existe uma maneira de mover diretamente o arquivo do servidor de produção para o servidor de armazenamento temporário? O SCP faz isso ou faz o download primeiro? Como sobre o rsync?

EDITAR

Ambos são servidores Linux executando o Ubuntu 14.04 LTS.

    
por Corey 19.07.2016 / 19:27

2 respostas

5

Eu estou supondo que estes são ambos servidores linux como você mencionou scp (sim, estou ciente de que o scp existe para o windows).

Simplesmente ssh em um dos servidores, depois scp o arquivo diretamente para o outro servidor.

scp file user@server:/location/

De fato, se sua versão do scp for compatível (eu não usei um que não suporta, mas as páginas man online parecem não documentar este recurso) você pode usar -3 que irá mover um arquivo entre dois hosts, através do host local.

scp -3 file user@server:/location/

Isso irá usar a largura de banda dos sistemas locais, mas não "salvará" uma cópia do arquivo localmente.

Você também pode usar o rsync para conseguir o mesmo, no entanto, o comando é um pouco diferente e eu não sou bem versado o suficiente para conhecê-lo do topo da minha cabeça.

    
por 19.07.2016 / 19:33
0

Hmm ... ... Pelo que parece, talvez um dos sistemas seja limitado de alguma forma, ou talvez o tempo seja um fator. Versão curta: SCP é ótimo para uma cópia de um tiro, com algumas ressalvas. Presumo que haja 3 servidores envolvidos aqui: o servidor A é o destino, o servidor B é o local remoto com o arquivo e o servidor C é a máquina na qual você deseja executar a operação de cópia (C para cópia). Eu somaria o arquivo no servidor B, então o scp copiaria o arquivo, e se você usasse -3 ele seria uma cópia rápida, sem verificação. Em seguida, colocaria em loop uma soma de verificação do arquivo no servidor A após a cópia e compararia isso com a soma de verificação do servidor B. Se eles corresponderem, pronto, feche o loop; se não executar a cópia novamente e a soma de verificação. Se você acabou de usar o SCP com as opções padrão, o arquivo será armazenado em cache no Servidor C e depois copiado para o servidor A. Isso evita problemas no trânsito e permite outro tráfego de rede. Se você quiser imitar isso, mas talvez um pouco mais rápido, você pode alterar o primeiro exemplo com o sinalizador -3 e, em vez disso, copiar o arquivo para o servidor C, copie o arquivo para o servidor A, verificando o arquivo no servidor A com um comparação de soma de verificação para o arquivo no servidor B (você pode repetir a cópia se necessário). Esta é uma operação semelhante, mas permite excluir o arquivo do servidor C no final, para que não haja sobrecarga de armazenamento em cache aguardando liberação. Eu não gosto de brincar com a liberação de recursos em cache, especialmente em um ambiente de produção ativo. Um erro faz uma grande bagunça. Eu gosto de uma opção mais simples, onde o arquivo é acessível diretamente para que eu possa excluí-lo do meu próprio script. Eu também sou menos experiente em alguns dos controles mais avançados. Espero que isso ajude.

    
por 29.06.2018 / 00:34