通过中间SSH服务器使用SFTP传输大文件/目录

通过中间SSH服务器使用SFTP传输大文件/目录,ssh,sftp,Ssh,Sftp,我想从另一个站点传输一些数据。他们有一个SSH服务器,我通过它连接到那个站点。 一旦连接,我使用一个SFTP命令到一台内部机器(我不能直接从我的机器访问)并获取数据 我现在想传输一个大的bz2文件 问题是我使用的SSH机器(用于连接数据)只能容纳50GB左右的数据 这就是我通常做的(下面),但现在我想通过SSH机器传输这个bz2文件中的所有子文件夹 目前的步骤如下: ssh george@ssh.abc.com sftp george@bigserver.abc.com cd /temp/g

我想从另一个站点传输一些数据。他们有一个SSH服务器,我通过它连接到那个站点。 一旦连接,我使用一个SFTP命令到一台内部机器(我不能直接从我的机器访问)并获取数据

我现在想传输一个大的bz2文件

问题是我使用的SSH机器(用于连接数据)只能容纳50GB左右的数据

这就是我通常做的(下面),但现在我想通过SSH机器传输这个bz2文件中的所有子文件夹

目前的步骤如下:

ssh george@ssh.abc.com

sftp george@bigserver.abc.com

cd /temp/george

get file.txt

bye
exit
现在从我的本地计算机:

sftp george@ssh.abc.com
get file.txt
bye
如果有帮助的话,我的数据文件中还有一个解压文件夹

我想做的是:

1) 我想通过SSH服务器将整个文件夹传输到本地计算机,但正如我提到的,SSH服务器一次只能容纳50GB。 我还想这样做,我可以启动它,而不必手动执行,一个文件一个文件(像现在一样)

2) 也不想中途失去SSH/SFTP连接

如果您对我可以使用的脚本有任何建议,我将不胜感激。

使用

rsync -PvL george@bigserver.abc.com:/temp/george/file.txt .
它使用ssh,如果连接中断,您也可以重新运行该命令并从您离开的地方继续使用

rsync -PvL george@bigserver.abc.com:/temp/george/file.txt .
它使用ssh,如果连接中断,您也可以重新运行该命令并从您离开的地方继续使用

rsync -PvL george@bigserver.abc.com:/temp/george/file.txt .
它使用ssh,如果连接中断,您也可以重新运行该命令并从您离开的地方继续使用

rsync -PvL george@bigserver.abc.com:/temp/george/file.txt .
它使用ssh,并且如果连接中断,您可以重新运行该命令并从您离开的位置继续(至少在openssh实现中),允许您在连接时设置端口转发:

ssh -L 4444:bigserver.abc.com:22 george@ssh.abc.com
这将在本地打开端口4444

现在,连接到localhost:4444实际上将通过SSH隧道转发:

sftp-第4444页george@localhost

但是,请注意,您必须确保主机密钥与您的期望相匹配,因为本地SSH不会期望bigserver的SSH密钥。

SSH
(至少在openssh实现中)允许您在连接时设置端口转发:

ssh -L 4444:bigserver.abc.com:22 george@ssh.abc.com
这将在本地打开端口4444

现在,连接到localhost:4444实际上将通过SSH隧道转发:

sftp-第4444页george@localhost

但是,请注意,您必须确保主机密钥与您的期望相匹配,因为本地SSH不会期望bigserver的SSH密钥。

SSH
(至少在openssh实现中)允许您在连接时设置端口转发:

ssh -L 4444:bigserver.abc.com:22 george@ssh.abc.com
这将在本地打开端口4444

现在,连接到localhost:4444实际上将通过SSH隧道转发:

sftp-第4444页george@localhost

但是,请注意,您必须确保主机密钥与您的期望相匹配,因为本地SSH不会期望bigserver的SSH密钥。

SSH
(至少在openssh实现中)允许您在连接时设置端口转发:

ssh -L 4444:bigserver.abc.com:22 george@ssh.abc.com
这将在本地打开端口4444

现在,连接到localhost:4444实际上将通过SSH隧道转发:

sftp-第4444页george@localhost


但是,请注意,您必须确保主机密钥与您的期望相匹配,因为本地SSH不会期望bigserver的SSH密钥。

1st-sftp具有-r标志来获取递归获取目录的命令

第二,看看ssh转发(即标记-R和-L到ssh命令)。我们的想法是使用ssh.abc.com作为代理。请尝试将此作为参考:


第三-如果您在远程计算机上有tar,您可能希望在服务器上创建一个tar,将其定向到ssh连接,然后在本地端取消tar。可能对ssh隧道有用

1st-sftp具有-r标志来获取递归获取目录的命令

第二,看看ssh转发(即标记-R和-L到ssh命令)。我们的想法是使用ssh.abc.com作为代理。请尝试将此作为参考:


第三-如果您在远程计算机上有tar,您可能希望在服务器上创建一个tar,将其定向到ssh连接,然后在本地端取消tar。可能对ssh隧道有用

1st-sftp具有-r标志来获取递归获取目录的命令

第二,看看ssh转发(即标记-R和-L到ssh命令)。我们的想法是使用ssh.abc.com作为代理。请尝试将此作为参考:


第三-如果您在远程计算机上有tar,您可能希望在服务器上创建一个tar,将其定向到ssh连接,然后在本地端取消tar。可能对ssh隧道有用

1st-sftp具有-r标志来获取递归获取目录的命令

第二,看看ssh转发(即标记-R和-L到ssh命令)。我们的想法是使用ssh.abc.com作为代理。请尝试将此作为参考:

第三-如果您在远程计算机上有tar,您可能希望在服务器上创建一个tar,将其定向到ssh连接,然后在本地端取消tar。可能对ssh隧道有用

看,看,看,看。