Comment envoyer le téléchargement du fichier SFTP en arrière-plan?

8

Est-ce possible de:

  1. exécuter la commande sftp sur la machine distante et télécharger un fichier ( ssh user@machine, sftp user2@server, get file)
  2. puis, envoyez le téléchargement en arrière-plan, afin que je puisse éteindre mon ordinateur local
Praweł
la source
Veuillez me corriger si je me trompe: 1) Vous êtes connecté localement sur la machine A. 2) Vous voulez vous connecter via SSH sur la machine B. 3) Sur le shell B, vous voulez exécuter un téléchargement sftp à distance depuis la machine C. 4 ) Vous voulez alors arrêter la machine A. Est-ce exact?
Pavlos G.
A - mon ordinateur local; B - serveur distant 1; C - serveur distant 2; Je veux taper ssh user@Bsur ma machine A, sftp user@Cet get some_file.tar.gzsur la machine B; donc, je voudrais télécharger sftp un fichier de C vers B et arrêter ma machine A, laissant la télécommande B et C en marche
Praweł

Réponses:

10

Essayez la screenmachine B, lancez le téléchargement et détachez-la ensuite:

Sur la machine A:

ssh user@B

Sur la machine B:

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

Jamais essayé mais pourrait fonctionner.

Modifier: plus tard, screen -xreconnectez-vous et utilisez pour vous reconnecter à la session en cours. Ensuite, fermez-le correctement afin qu'il ne consomme pas les ressources du serveur.

remuer
la source
Ça marche! merci beaucoup :) commande extrêmement utile ...
Praweł
et pour un écran plus funk sur ubuntu, essayez byobu.
finley
1

Si vous voulez juste la fonction "détacher" de l'écran, il y a un programme appelé "dtach" qui ne fournit que cette fonction.

Ryan C. Thompson
la source
0

Mettre le caractère & (esperluette) derrière une commande l'exécute en arrière-plan. Cependant, je ne sais pas comment le faire après qu'une commande a déjà été exécutée, et je ne sais pas non plus si cela fonctionne sur des machines distantes.

armornick
la source
&serait OK, mais je ne connais aucune --passwordoption que je puisse passer par la ligne de commande (donc je ne peux pas faire quelque chose comme ça sftp --password=abc user@server:file.tar.gz &)
Praweł
0

Il existe un certain nombre de solutions à ce problème.

Une option consiste à utiliser la screencommande, mais semble un peu complexe.

La meilleure façon que j'ai trouvée est d'envoyer le travail en arrière-plan.

Dans votre cas, la commande serait

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