copia um arquivo com scp, que não é armazenado em um sistema de arquivos

0

Eu preciso copiar um arquivo .war, que atualmente posso acessar através da interface do usuário com " link ". Portanto, não é armazenado em um servidor de arquivos. Im logado em um servidor e o arquivo precisa ser salvo no servidor B.

Em geral, é possível baixar arquivos de um servidor A, que não estão armazenados em um servidor de arquivos com o comando scp para um servidor B?

Obrigado antecipadamente.

    
por user1338413 21.12.2012 / 13:11

1 resposta

5

Não, o scp não suporta http: . Primeiro copie o arquivo para o seu computador usando curl ou wget (ou salve-o no navegador) e, em seguida, use scp para copiar de um sistema de arquivos local.

Se você tiver acesso ao shell no servidor B, apenas ssh para o servidor B, execute wget para extrair o arquivo diretamente. Isso é melhor porque ele usa apenas largura de banda no servidor B e no servidor da Web (caso isso seja importante para você) - veja abaixo uma solução alternativa que usa muito mais largura de banda.

Ou, se por algum motivo você não conseguir baixar o arquivo diretamente para o servidor B, faça algo como:

serverA$ wget --output-document=- http://server:host/directory/my_file.war | \
    ssh user@serverB "cat > /path/to/my_file.war"

Isso diz a wget para buscar a URL para stdout e, em seguida, ssh enviará os dados para o servidorB e redirecioná-los para um arquivo. Infelizmente, scp não pode ler um a partir de stdin, então você precisará de acesso shell no serverB para que isso funcione. Observe que, se você fizer isso, usará 2x de largura de banda no servidor A (para extrair o arquivo do servidor da Web e enviá-lo ao servidor B) e usará a largura de banda 1x no servidor da Web e no servidor B.

    
por 21.12.2012 / 13:14

Tags