Tar e baixar em uma etapa sobre ssh / scp [duplicate]

7

(Essa parece ser uma pergunta óbvia / comum, mas não consegui encontrá-la na pesquisa - talvez eu não estivesse usando a terminologia correta ...)

Eu quero fazer o login em ssh para uma máquina remota, tar um diretório e baixá-lo na minha máquina local. Eu não preciso deixar uma cópia no servidor remoto. Atualmente eu ssh em, criar o arquivo tar, logout, scp o arquivo para minha máquina, o ssh de volta para remover o arquivo. Não exatamente eficiente ...

Eu sei que isso não funciona, mas estou pensando em algo como:

scp user@remote:"tar czf - /my/directory/" ./my/local/destination/archive.tgz

Ou existe uma maneira melhor?

Obrigado.

    
por phil 27.04.2015 / 12:03

1 resposta

12

Se você seguir sua descrição, o comando se torna "óbvio" (pelo menos, quando você o vê ...). Você realmente não estava muito longe com sua tentativa:

ssh user@remote tar czf - /my/directory/ > /my/local/destination/archive.tgz

(O " duplicado "link citado por Marco fornece uma solução mais limpa. Para criar este comando aqui eu simplesmente segui o estilo da sua tentativa.)

    
por 27.04.2015 / 12:42