Estou frequentemente me conectando a um servidor remoto via ssh, e tendo que transferir alguns arquivos entre este host remoto e meu PC local. Eu não tenho direitos de administrador naquele servidor, e não sou o único a usá-lo. Os caminhos completos para os arquivos do host podem variar significativamente de arquivo para arquivo e geralmente são bem longos. No entanto, eu geralmente transfiro os arquivos para a mesma pasta local no início. Eu tenho uma configuração de conexão ssh sem senha do meu dispositivo local para o host remoto. Meu "fluxo de trabalho" atual para esta pequena operação usa scp e parece muito ineficiente:
- Geralmente já estou conectado via ssh no local do arquivo relevante no host remoto: costumo
readlink -f
obter o caminho completo do arquivo - Copio o caminho (deixando o teclado clicar)
- Eu mudo para outro terminal no meu computador local e começo a digitar
scp hostname:
- Eu colo o caminho do arquivo (outro clique)
- Termino o
scp
comando com o nome do diretório local e executo
Quando tenho que fazer isso várias vezes para muitos arquivos que não são necessariamente fáceis de incluir todos juntos em um único comando, realmente não parece eficiente. Muitos passos, muita digitação repetitiva e cliques por aí.
O ideal seria um comando mágico scp2local filename
que eu pudesse usar do host remoto para fazer todas essas etapas diretamente em uma e enviá-las para uma pasta local predefinida. Mas não tenho certeza de como configurá-lo. Qualquer coisa que envolva uma configuração de conexão ssh sem senha completa do remoto para meu PC local parece uma péssima ideia, já que todos os outros que usam o servidor poderiam se conectar ao meu dispositivo pessoal. (Mas talvez haja uma maneira de fazer isso explorando o fato de que estou apenas "enviando de volta" arquivos para o dispositivo do qual estou me conectando especificamente?)
Resumindo: Qual é a maneira mais eficiente (em termos de esforço humano) de transferir regularmente alguns arquivos de um host remoto para uma pasta específica do computador local do qual estou me conectando?
NB: Estou usando WSL no meu dispositivo local, o que pode ser relevante para toda a questão de "clicar e copiar"
Você pode usar
sftp
o protocolo clássico de transferência de arquivos em uma janela de terminal e permanecer conectado (se houver um logout após alguns minutos de inatividade, você pode realizar alguma tarefa simples, comols
manter a conexão aberta).Você pode procurar por arquivos via
sftp
, mas talvez você precise executar operações que só estão disponíveis viassh
, então você pode ter duas janelas de terminal abertas. Se você já sabe os nomes e caminhos dos arquivos, talvez via curingas, você também pode usarrsync
para buscar esses arquivos mais ou menos automaticamente.