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

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.


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.


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.


&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 &
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.