Transferir arquivos via SSH

9

Eu quero usar a transferência de arquivos via SSH em alguns scripts. Eu li que é possível tar sobre ssh. Onde devo começar a ler?

Fernando Briano
fonte
Por que você traz alcatrão?
Zoredache
1
O tar é a maneira mais rápida de copiar arquivos por SSH. O scp e o rsync têm muita sobrecarga de protocolo ao copiar muitos arquivos pequenos.
Justin
@ Justin, é claro que a suposição com o tar é que você terá uma conexão confiável. Se o desempenho bruto não importa, geralmente é melhor manter as soluções mais comuns e simples como o scp / rsync.
precisa
1
Hã? tar sobre ssh não é pior que scp ou rsync. O único aspecto em que o rsync é melhor é que ele permite que você retome. Se a conexão não for confiável, provavelmente ainda vale a pena tentar tar sobre ssh primeiro e finalizar a transferência com o rsync.
9307 Justin
@ Justin, isso faria um script bastante complexo. Talvez devêssemos começar com algo um pouco mais básico.
John Gardeniers

Respostas:

23

Para transferir arquivos através do ssh, você pode

  • use scp
    • scp -r /srcdir/ user@remotehost:/destdir/
  • use rsync sobre ssh (consulte o parâmetro -e)
    • rsync -e ssh -a /srcdir/ user@remotehost:/destdir/
  • use alguma ferramenta que transfira dados via stdin / out ( tar , cpio , etc)
    • cd /sourcedir; tar -c . | ssh username@remotehost bash 'cd /dstdir; tar -x
  • Monte o sistema de arquivos via sshfs (se o fusível for suportado no seu sistema)
Zoredache
fonte
Eu uso regularmente todos os três; qual uso depende das circunstâncias.
reinierpost
3

O'Reilly tem um livro com tudo - SSH, The Secure Shell: The Definitive Guide - se você pesquisar no Google, há muitas referências, lugares para comprá-lo e visualiza-lo on-line.

Kevin K
fonte
Tem que amar quando você recebe votos negativos e nenhum comentário para que você saiba o porquê. Ele perguntou por onde começar a ler - e isso está disponível online e em uma livraria. É uma ótima referência para ssh.
Kevin K
Eu acho que isso está errado também. Por que você foi rejeitado (duas vezes), dado que realmente respondeu à pergunta e a resposta aceita (votada até 15 vezes até agora) é um genérico como copiar arquivos no ssh sem referência a por onde começar a ler. Vou votar em você, apenas para tentar remediar a situação. Não deixe que eles te derrubem cara.
Richard Holloway
0

Para tar sobre ssh, você pode usar o fato de que o ssh encaminha stdin e stdout. Então você pode fazer

ssh server 'tar czf - /some/dir/' > tarfile.tar.gz

e tenha o backup na máquina local.

Dan Andreatta
fonte