A maneira mais fácil para transferência rápida de arquivos entre servidores linux?

16

Eu preciso transferir arquivos de um servidor CentOS para outro. Transferirá arquivos de 5MB a cada 10 minutos. Não precisa de criptografia.

O que é fácil para a rápida transferência de arquivos?

Existe algo mais simples que o ftp?

Obrigado!

    
por Alex L 10.07.2009 / 19:17

10 respostas

25

rsync

Eu usaria rsync antes de usar ftp ou tftp.

Mais opções e (na minha experiência) transferência mais confiável.

    
por 10.07.2009 / 19:22
21

tar sobre o ssh está bem, mas tar sobre o TCP via netcat é o mais baixo possível! Se isso é uma coisa de uma vez, dê uma chance a isso:

No receptor:

nc -l -p 8989 | tar x

No remetente:

tar cf - /source-path | nc (receiving host ip address) 8989

Se isso é algo que você fará regularmente, provavelmente usaria o rsync.

    
por 10.07.2009 / 19:44
8

Duas pessoas mencionaram tar sobre ssh, mas não disseram como fazê-lo. Para o registro, o procedimento básico é executar:

tar cf - files... | ssh remotehost 'cd /destination && tar xvf -'

Ou, se você quiser iniciar as transferências do terminal de recebimento:

ssh remotehost 'cd /source && tar cf - files' | tar xvf -

A vantagem de se fazer isso da solução netcat da Evan é que tudo pode ser iniciado a partir de um computador; você não precisa coordenar duas invocações do netcat. Se você precisar que isso seja executado automaticamente, você pode configurar uma chave ssh que permita fazer conexões sem uma frase secreta e usar essa chave para essas conexões.

ssh tem uma opção -C para comprimir seu fluxo de dados, ou você pode usar a capacidade de compactação integrada do GNU tar:

tar zcf - files... | ssh remotehost 'cd /destination && tar xzvf -'

O rsync é outra opção, mas seu ponto strong está na atualização de arquivos que já existem no terminal de recebimento. Descobri que é mais lento que scp ou tar / ssh ao usá-lo para transferir arquivos que ainda não existem no outro lado.

    
por 10.07.2009 / 21:39
6

Eu usaria scp ou tar over ssh , honestamente. A criptografia reduz a velocidade, mas a facilidade de configuração e uso, confiabilidade e (subjetivamente, é claro) a familiaridade me deixam disposto a receber o hit, a menos que eu realmente precise dessa velocidade.

Você pode acelerar a transferência ssh dizendo a ela para usar uma codificação mais rápida que a padrão, também. O padrão é geralmente 3des e normalmente você pode fazer -c des , então obviamente será mais rápido, e -c blowfish é representado tão rápido quanto, embora eu não tenha testado com exatidão.

(Nos tempos do SSHv1, você poderia fazer -c none , mas acho que alguém decidiu que era um juju ruim.)

    
por 10.07.2009 / 19:39
4

Se você tiver que passar pelo scp / ssh, minhas experiências mostram que a codificação mais rápida habilitada por padrão atualmente é a RC4. Você especifica a cifra via ' -c arcfour ' no seu comando ssh / scp:

para cópia inicial:

  • scp -c arcfour -r foo/ desthost:/destdir

para atualizações:

  • rsync -e 'ssh -c arcfour' -r foo/ desthost:/destdir
por 13.07.2009 / 21:23
3

O rsync é um bom caminho a percorrer, porque se você estiver transferindo os mesmos arquivos mais de uma vez, isso acelerará a cópia, como mostra esta citação da página man.

   rsync is a program that behaves in much the same way that rcp does, but
   has many more options and uses  the  rsync  remote-update  protocol  to
   greatly  speed  up  file  transfers  when the destination file is being
   updated.
   The rsync remote-update protocol allows rsync to transfer just the dif-
   ferences between two sets of files across the network connection, using
   an efficient  checksum-search  algorithm  described  in  the  technical
   report that accompanies this package.
    
por 10.07.2009 / 19:28
2

O FTP é bastante simples, mas uma maneira ainda mais simples pode ser criar um compartilhamento NFS em uma máquina e montá-lo na outra. Então, copiar os arquivos consistirá em fazer um cp de um diretório para outro.

    
por 10.07.2009 / 19:39
2

Se você quer velocidade, você pode usar netcat e tar. Será mais rápido que ssh, rsync ou scp em uma rede local onde a criptografia não é uma preocupação. Google "netcat tar".

DestinationServer

nc -l -p 7878 | tar -C /target/dir -xzf -

SourceServer

tar -cz /source/dir | nc DestinationServer 7878

Isso obviamente requer que o netcat esteja realmente instalado. Google "netcat tar" para mais informações.

    
por 21.05.2012 / 06:58
1

Eu acredito que você já resolveu seu problema mas no caso de seu ssh funcionar em outra porta (não na porta padrão 22) você pode usar isto

rsync -avz --rsh='ssh -pXXXXX' /local/dir/ [email protected]:/remote/dir

Nota: - substitua XXXXX pelo seu número de porta - substitua 192.16.1.2 pelo IP do servidor remoto correto

    
por 21.05.2012 / 08:59
-1

link

link

ou este aqui:

link

Use o comando gist para fazer upload e download

    
por 29.09.2014 / 08:43