Wie sende ich den Download einer SFTP-Datei in den Hintergrund?


8

Ist es möglich, zu:

  1. SFTP - Befehl auf Remote - Rechner ausführen und eine Datei herunterladen ( ssh user@machine, sftp user2@server, get file)
  2. Senden Sie dann den Download in den Hintergrund, damit ich meinen lokalen Computer ausschalten kann

Bitte korrigieren Sie mich, wenn ich falsch liege: 1) Sie sind lokal auf Computer A verbunden. 2) Sie möchten eine Verbindung über SSH auf Computer B herstellen. 3) Auf der Shell von B möchten Sie einen Remote-SFTP-Download von Computer C ausführen. 4 ) Sie wollen dann Maschine A herunterfahren. Ist das richtig?
Pavlos G.

A - mein lokaler Computer; B - Remote-Server 1; C - Remote-Server 2; Ich mag Typen ssh user@Bauf meiner Maschine, dann sftp user@Cund get some_file.tar.gzauf B - Maschine; Daher möchte ich eine Datei von C nach B
per SFTP

Antworten:


10

Probieren Sie screenMaschine B aus, starten Sie den Download und trennen Sie sie anschließend:

Auf Maschine A:

ssh user@B

Auf Maschine B:

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

Nie versucht, konnte aber funktionieren.

Bearbeiten: Melden Sie sich später wieder an und stellen Sie die screen -xVerbindung zur laufenden Sitzung wieder her. Fahren Sie es dann ordnungsgemäß herunter, damit die Ressourcen des Servers nicht beansprucht werden.


Es klappt!
Vielen

und für einen funkigeren Bildschirm auf Ubuntu probieren Sie byobu aus.
Finley

1

Wenn Sie nur die Funktion "Trennen" des Bildschirms verwenden möchten, gibt es ein Programm namens "dtach", das nur diese Funktion bietet.


0

Wenn Sie das Zeichen & (kaufmännisches Und) hinter einen Befehl setzen, wird es im Hintergrund ausgeführt. Ich weiß jedoch nicht, wie es geht, nachdem ein Befehl bereits ausgeführt wurde, und ich weiß auch nicht, ob dies auf Remotecomputern funktioniert.


&wäre in Ordnung, aber ich kenne keine --passwordOption, die ich über die Befehlszeile passieren kann (also kann ich so etwas nicht tun sftp --password=abc user@server:file.tar.gz &)
Praweł

0

Es gibt eine Reihe von Lösungen für dieses Problem.

Eine Möglichkeit besteht darin, den screenBefehl zu verwenden, der jedoch etwas komplex erscheint.

Der beste Weg, den ich gefunden habe, ist, den Job in den Hintergrund zu schicken.

In Ihrem Fall wäre der Befehl

scp user@machine:~/filename.ext /tmp &
scp -r user@machine:~/dirname /tmp &
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.