Atualmente, tenho dois servidores CentOS. Preciso saber como e qual a maneira mais rápida seria "tar" o diretório de imagens e SCP-lo?
Essa é a maneira mais rápida que acabei de sugerir, porque a tarar está demorando para sempre ... Executei o comando:
tar cvf imagesbackup.tar images
E eu ia dar uma olhada.
Deixe-me saber se existe uma maneira mais rápida. Eu tenho acesso remoto / SSH às duas máquinas.
file-transfer
scp
tar
Andrew Fashion
fonte
fonte
Respostas:
Em vez de usar o tar para gravar em seu disco local, você pode gravar diretamente no servidor remoto pela rede usando ssh.
Qualquer sequência que segue o comando "ssh" será executada no servidor remoto em vez do logon interativo. Você pode canalizar a entrada / saída de e para esses comandos remotos através do SSH como se fossem locais. Colocar o comando entre aspas evita qualquer confusão, especialmente ao usar o redirecionamento.
Ou, você pode extrair o arquivo tar diretamente no outro servidor:
Observe a
-C
opção raramente usada . Significa "mudar para este diretório antes de fazer qualquer coisa".Ou talvez você queira "puxar" do servidor de destino:
Observe que a
<(cmd)
construção é nova no bash e não funciona em sistemas mais antigos. Ele executa um programa e envia a saída para um canal e substitui esse canal no comando como se fosse um arquivo.Eu poderia facilmente ter escrito o acima, da seguinte maneira:
Ou da seguinte maneira:
Ou então, você pode evitar algumas mágoas e usar o rsync:
Por fim, lembre-se de que a compactação dos dados antes da transferência reduzirá sua largura de banda, mas em uma conexão muito rápida, a operação poderá levar mais tempo . Isso ocorre porque o computador pode não ser capaz de compactar rápido o suficiente para acompanhar: se a compactação de 100 MB levar mais tempo do que o necessário para enviar 100 MB, será mais rápido enviá-lo sem compactação.
Como alternativa, você pode considerar a tubulação para compactar com gzip (em vez de usar a opção -z) para poder especificar um nível de compactação. Foi minha experiência que, em conexões de rede rápidas com dados compactáveis, o uso de gzip no nível 2 ou 3 (o padrão é 6) fornece a melhor taxa de transferência geral na maioria dos casos. Igual a:
fonte
Eu ficaria tentado a sincronizá-lo sozinho - ele faz compressão e lida bem com a perda de links.
fonte
Se você apenas os aumentar e nada mais, isso desperdiçará toneladas de tempo com apenas um ganho de velocidade mínimo.
Portanto, simplesmente ordenar os arquivos com os comutadores cvf custará efetivamente o tempo necessário para ler todas as imagens de 55 GB e gravá-las novamente em disco. (Efetivamente, será desperdiçado ainda mais tempo, pois haverá uma sobrecarga considerável).
Há apenas uma vantagem que você ganha aqui: a sobrecarga para o upload de muitos arquivos está sendo reduzida. Você poderá obter tempos de transferência mais rápidos se compactar as imagens (mas como acredito que elas já estejam em um formato compactado, isso não ajudará muito). Apenas mais perda de tempo de computação.
A maior desvantagem da transferência de um enorme arquivo de alcatrão por fio é que, se algo der errado, isso pode significar que você precisa recomeçar.
Eu usaria dessa maneira:
No novo servidor
E então apenas
diff
. E como o scp suporta compactação em tempo real, não há necessidade de arquivos separados.Editar
Manterei as informações MD5, pois foram úteis para o OP. Mas um comentário me atingiu com uma nova visão. Assim, um pouco de pesquisa forneceu essa informação útil. Observe que o assunto aqui é SFTP e não diretamente SCP .
fonte
Além da sugestão de md5sum de Pacey, eu usaria o seguinte:
No destino:
nc -w5 -l -p 4567 | tar -xvf -
Então na fonte:
tar -cvf - /path/to/source/ | nc -w5 destinationserver 4567
Ainda é um tar / untar, e não há criptografia, mas é direto para o outro servidor. Inicie os dois em conjunto (
-w5
oferece 5 segundos de graça.) E observe-o. Se a largura de banda estiver apertada, adicione -z ao alcatrão nas duas extremidades.fonte
Um ponto - nem todos os hosts têm o rsync e os hosts podem ter versões diferentes do tar. Por esse motivo, pode-se recomendar como primeira porta de chamada usando o cpio frequentemente negligenciado.
Você pode cpio over ssh para fazer replicação ad-hoc de estruturas de arquivos / diretórios entre hosts. Dessa forma, você tem um controle mais preciso sobre o que é enviado, visto que precisa "alimentar" o cpio, nom-nom. Também é mais portátil para argumentos, o cpio não muda muito - esse é um ponto importante se você estiver cuidando de vários hosts em um ambiente heterogêneo.
Exemplo de cópia / exportação / home e subdiretórios para host remoto:
O acima copia o conteúdo de / export / home e quaisquer subdiretórios para / export / home no host remoto.
Espero que isto ajude.
fonte
Eu você tem acesso ssh, você tem acesso rsync.
ou
Se você receber um erro como "erro rsync: alguns arquivos não puderam ser transferidos (código 23) em main.c (977) [remetente = 2.6.9]", verifique seu usuário e grupos entre os servidores; você pode ter uma incompatibilidade.
Use a opção rsync "-z" se desejar que o rsync comprima a transferência. Esta opção usará mais CPU, mas menos largura de banda, portanto, esteja ciente disso.
Existe uma opção "--progress" que fornece uma porcentagem de transferência, o que é legal se você gosta desse tipo de coisa.
fonte
Eles estão em uma rede compartilhada em vez de precisar da Internet para transferir arquivos? NFS ou FTP pode ser muito mais rápido que a sobrecarga do SCP, embora você perca a criptografia durante a transferência.
fonte
Ou você sempre pode usar tubos de alcatrão:
'j' = bzip2, você pode usar 'z' para gzip ou --lzma se o seu tar o suportar.
fonte