Como enviar o download do arquivo SFTP para segundo plano?

8

É possível:

  1. executar o comando sftp na máquina remota e baixar um arquivo ( ssh user@machine, sftp user2@server, get file)
  2. em seguida, envie o download para o plano de fundo, para que eu possa desligar o computador local
Praweł
fonte
Corrija-me se estiver errado: 1) Você está conectado localmente na máquina A. 2) Você deseja se conectar através do SSH na máquina B. 3) No shell de B, você deseja executar um download sftp remoto da máquina C. 4 ) Você deseja desligar a máquina A. Está correto?
Pavlos G.
A - meu computador local; B - servidor remoto 1; C - servidor remoto 2; Eu quero escrever ssh user@Bna minha máquina A, em seguida, sftp user@Ce get some_file.tar.gzna máquina B; então, gostaria de fazer o download de um arquivo de C para B do sftp e desligar minha máquina A, deixando o B e C remoto em execução
Praweł

Respostas:

10

Experimente screena máquina B, inicie o download e desanexe depois:

Na máquina A:

ssh user@B

Na máquina B:

screen
sftp user@C
get some_file.tar.gz
Ctrl-a d
logout

Nunca tentei, mas poderia funcionar.

Editar: mais tarde, efetue login novamente e use-o screen -xpara reconectar-se à sessão em execução. Em seguida, desligue-o corretamente para não consumir os recursos do servidor.

abanar
fonte
funciona! muito obrigado :) comando extremamente útil ...
Praweł 13/12
e para uma tela mais divertida no ubuntu, experimente o byobu.
Finley
1

Se você deseja apenas o recurso "desanexar" da tela, existe um programa chamado "dtach" que fornece apenas esse recurso.

Ryan C. Thompson
fonte
0

Colocar o caractere & (e comercial) atrás de um comando o executa em segundo plano. No entanto, não sei como fazer isso depois que um comando já foi executado, nem sei se isso funciona em máquinas remotas.

armornick
fonte
&seria OK, mas eu não conheço nenhuma --passwordopção que eu possa passar através da linha de comando (por isso eu não posso fazer algo parecido sftp --password=abc user@server:file.tar.gz &)
Praweł
0

Existem várias soluções para esse problema.

Uma opção é usar o screencomando, no entanto, parece um pouco complexo.

A melhor maneira que encontrei é enviar o trabalho para segundo plano.

No seu caso, o comando seria

scp user@machine:~/filename.ext /tmp &
scp -r user@machine:~/dirname /tmp &
Thecamelcoder
fonte