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
Praweł
quelle
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.

wedeln
quelle
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.

Ryan C. Thompson
quelle
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.

Armornick
quelle
&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 &
Thecamelcoder
quelle