Preciso transferir arquivos de um servidor CentOS para outro. Transferirá arquivos de 5 MB a cada 10 minutos. Não precisa de criptografia.
O que é fácil foi para uma rápida transferência de arquivos?
Existe algo mais simples que o ftp?
Obrigado!
Preciso transferir arquivos de um servidor CentOS para outro. Transferirá arquivos de 5 MB a cada 10 minutos. Não precisa de criptografia.
O que é fácil foi para uma rápida transferência de arquivos?
Existe algo mais simples que o ftp?
Obrigado!
Respostas:
rsync
Eu usaria o rsync antes de usar o ftp ou tftp.
Mais opções e (na minha experiência) transferência mais confiável.
tar sobre ssh é bom, mas o tar sobre TCP via netcat é o mais baixo possível! Se isso é algo único, experimente:
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, eu provavelmente usaria o rsync.
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ê deseja iniciar transferências a partir do final de recebimento:
ssh remotehost 'cd /source && tar cf - files' | tar xvf -
A vantagem de fazê-lo dessa maneira sobre a solução netcat da Evan é que tudo pode ser iniciado em um computador; você não precisa coordenar duas invocações de netcat. Se você precisar executar automaticamente, poderá configurar uma chave ssh que permita fazer conexões sem uma senha e usar essa chave para essas conexões.
O ssh possui uma opção -C para compactar seu fluxo de dados ou você pode usar a capacidade de compactação interna do tar do GNU:
tar zcf - files... | ssh remotehost 'cd /destination && tar xzvf -'
O Rsync é outra opção, mas seu ponto forte é a 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 do outro lado.
Eu usaria scp
ou tar
mais ssh
, honestamente. A criptografia desacelera as coisas, mas a facilidade de configuração e uso, a confiabilidade e a familiaridade (subjetivamente, é claro) me deixam disposto a sofrer, a menos que eu realmente precise dessa velocidade.
Você pode acelerar a transferência ssh, dizendo-lhe para usar uma cifra mais rápida que a padrão também. O padrão é geralmente 3des
e você geralmente pode fazê- -c des
lo, de modo que obviamente será mais rápido e também -c blowfish
será representado tão rápido, embora eu não o tenha testado exatamente.
(Nos dias de SSHv1, você costumava fazer isso -c none
, mas acho que alguém decidiu que isso era ruim.)
Se você precisar passar por scp / ssh, minhas experiências mostram que a cifra mais rápida ativada por padrão atualmente é o 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
O Rsync é um bom caminho, pois se você transferir os mesmos arquivos mais de uma vez, ele acelerará a cópia, conforme mostrado nesta citação na página de manual.
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.
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. Em seguida, copiar os arquivos consistirá em fazer um cp de um diretório para outro.
Se você quer velocidade, pode usar netcat e tar. Será mais rápido que o ssh, rsync ou scp em uma rede local em que a criptografia não é uma preocupação. Google "netcat tar".
nc -l -p 7878 | tar -C /target/dir -xzf -
tar -cz /source/dir | nc DestinationServer 7878
Obviamente, isso requer que o netcat esteja realmente instalado. Google "netcat tar" para mais informações.
Eu acredito que você já resolveu o seu problema, mas caso o seu ssh funcione em outra porta (não na porta padrão 22), você pode usar isso
rsync -avz --rsh = 'ssh -pXXXXX' / local / dir / root@192.168.1.2: / remote / dir
Nota: - substitua XXXXX pelo número da porta - substitua 192.16.1.2 pelo IP do servidor remoto correto
https://www.npmjs.org/package/gist-cli
https://github.com/settings/applications#personal-access-tokens
ou este:
https://github.com/defunkt/gist
Use o comando gist para fazer upload e download