Come inviare il download del file SFTP in background?


8

È possibile:

  1. eseguire il comando sftp sulla macchina remota e scaricare un file ( ssh user@machine, sftp user2@server, get file)
  2. quindi invia il download in background, così posso spegnere il mio computer locale

Per favore, correggimi se sbaglio: 1) Sei connesso localmente sulla macchina A. 2) Vuoi connetterti tramite SSH sulla macchina B. 3) Sulla shell B, vuoi eseguire un download sftp remoto dalla macchina C. 4 ) Quindi vuoi spegnere la macchina A. È corretto?
Pavlos G.,

A - il mio computer locale; B - server remoto 1; C - server remoto 2; Voglio scrivere ssh user@Bsulla mia macchina A, quindi sftp user@Ce get some_file.tar.gzsulla macchina B; quindi, vorrei sftp scaricare un file da C a B e spegnere la mia macchina A, lasciando in esecuzione B e C
remoti

Risposte:


10

Prova screensulla macchina B, avvia il download e stacca successivamente:

Sulla macchina A:

ssh user@B

Sulla macchina B:

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

Mai provato ma potrebbe funzionare.

Modifica: in seguito, accedi nuovamente e utilizza screen -xper riconnetterti alla sessione in esecuzione. Quindi, spegnilo correttamente in modo che non stia consumando le risorse del server.


Funziona! grazie mille :) comando estremamente utile ...
Praweł,

e per uno schermo più funkier su Ubuntu, prova byobu.
Finley,

1

Se vuoi solo la funzione "staccare" dello schermo, c'è un programma chiamato "dtach" che fornisce solo quella funzione.


0

Mettere il carattere & (e commerciale) dietro un comando lo esegue in background. Tuttavia, non so come farlo dopo che un comando è già stato eseguito, né so se funziona su macchine remote.


&sarebbe OK, ma non conosco alcuna --passwordopzione che posso passare attraverso la riga di comando (quindi non posso fare qualcosa di simile sftp --password=abc user@server:file.tar.gz &)
Praweł

0

Esistono diverse soluzioni a questo problema.

Un'opzione è usare il screencomando, tuttavia sembra un po 'complesso.

Il modo migliore che ho trovato è di inviare il lavoro in background.

Nel tuo caso il comando sarebbe

scp user@machine:~/filename.ext /tmp &
scp -r user@machine:~/dirname /tmp &
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.