Bagaimana cara mengirim unduhan file SFTP ke latar belakang?

8

Apakah mungkin untuk:

  1. mengeksekusi perintah sftp pada mesin remote dan download file ( ssh user@machine, sftp user2@server, get file)
  2. kemudian, kirim unduhan ke latar belakang, sehingga saya dapat mematikan komputer lokal saya
Praweł
sumber
Tolong koreksi saya jika saya salah: 1) Anda terhubung secara lokal pada mesin A. 2) Anda ingin terhubung melalui SSH pada mesin B. 3) Pada shell B, Anda ingin menjalankan pengunduhan sftp jarak jauh dari mesin C. 4 ) Anda kemudian ingin melakukan shutdown machine A. Apakah itu benar?
Pavlos G.
A - komputer lokal saya; B - server jauh 1; C - server jauh 2; Saya ingin mengetik ssh user@Bdi mesin A saya, lalu sftp user@Cdan get some_file.tar.gzdi mesin B; jadi, saya ingin sftp mengunduh file dari C ke B dan mematikan mesin A saya, membiarkan remote B dan C berjalan
Praweł

Jawaban:

10

Coba screenpada mesin B, mulai unduh dan lepaskan setelahnya:

Pada mesin A:

ssh user@B

Di mesin B:

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

Tidak pernah mencoba tetapi bisa bekerja.

Sunting: nanti, masuk kembali dan gunakan screen -xuntuk menyambung kembali ke sesi yang sedang berjalan. Kemudian, matikan dengan benar sehingga tidak menghabiskan sumber daya server.

mengibaskan
sumber
berhasil! terima kasih banyak :) perintah yang sangat berguna ...
Praweł
dan untuk layar yang lebih lucu di ubuntu, cobalah byobu.
finley
1

Jika Anda hanya menginginkan fitur layar "detach", ada program yang disebut "dtach" yang hanya menyediakan fitur itu.

Ryan C. Thompson
sumber
0

Menempatkan karakter & (ampersand) di belakang perintah menjalankannya di latar belakang. Namun, saya tidak tahu bagaimana cara melakukannya setelah perintah sudah dijalankan, saya juga tidak tahu apakah ini bekerja pada mesin jarak jauh.

armornick
sumber
&akan baik-baik saja, tapi saya tidak tahu --passwordopsi apa pun yang bisa saya lewati melalui command line (jadi saya tidak bisa melakukan sesuatu seperti sftp --password=abc user@server:file.tar.gz &)
Praweł
0

Ada sejumlah solusi untuk masalah ini.

Salah satu opsi adalah menggunakan screenperintah, namun tampaknya sedikit rumit.

Cara terbaik yang saya temukan adalah mengirim pekerjaan ke latar belakang.

Dalam kasus Anda, perintahnya adalah

scp user@machine:~/filename.ext /tmp &
scp -r user@machine:~/dirname /tmp &
Modulkoder
sumber