如何将SFTP文件下载发送到后台?


8

是否有可能:

  1. 远程机器上执行sftp命令和下载文件(ssh user@machinesftp user2@serverget file
  2. 然后,将下载发送到后台,这样我就可以关闭本地计算机

如果我错了,请纠正我:1)您在计算机A上本地连接。2)您要通过计算机B上的SSH连接。3)在B的外壳上,您要从计算机C执行远程sftp下载。4然后,您想关闭机器A。对吗?
Pavlos G.

A-我的本地计算机;B-远程服务器1;C-远程服务器2;我要输入ssh user@B我的一台机器,然后sftp user@Cget some_file.tar.gzB机器上的; 所以,我想为sftp下载从C文件B和关闭我的机器,让远程B和C运行
Praweł

Answers:


10

尝试screen在计算机B上,开始下载并随后分离:

在机器A上:

ssh user@B

在机器B上:

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

从未尝试过,但可以工作。

编辑:稍后,screen -x重新登录并用于重新连接到正在运行的会话。然后,将其正确关闭,以免消耗服务器资源。


有用!非常感谢:)非常有用的命令
Praweł

要在ubuntu上使用更时髦的屏幕,请尝试byobu。
finley 2010年


0

将字符&(&)放在命令后面会在后台运行它。但是,我不知道在执行命令后该怎么做,也不知道这在远程计算机上是否有效。


&会没事的,但我不知道--password可以通过命令行传递的任何选项(因此我无法执行类似操作sftp --password=abc user@server:file.tar.gz &
–Praweł2010年

0

有许多解决此问题的方法。

一种选择是使用screen命令,但是看起来有些复杂。

我发现最好的方法是将作业发送到后台。

在您的情况下,命令将是

scp user@machine:~/filename.ext /tmp &
scp -r user@machine:~/dirname /tmp &
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.