通常我可以使用
> scp [email protected] ssh [email protected]:/home/user/my_files/* .
对于大型数据集来说,这非常慢。
有人告诉我,我使用的机器有一个非常快的链接,可以使用 wget 访问。我如何使用 wget 执行相同的文件传输?
答案1
netcat
如果这两台机器之间有快速、安全且稳定的网络连接,则可以使用和的组合tar
,如下所示。
在目标机器上,运行:
nc -l 10000 | tar -C /destination/directory -xzf -
在源机器上,运行:
tar -cz /source/directory | nc dst-machine-ip-address 10000
请注意,由于不使用加密,因此可以嗅探流量,并且如果由于任何原因连接断开,您将不得不重新开始。
就我个人而言,我会坚持下去rsync
。
答案2
的表现SCP可能是由两个因素造成的:
- 加密的成本对于较慢的处理器来说可能太高了,
- 请求单个文件所需的往返次数。
对于大量的小文件,则是第二种。我的第一个想法是建议使用安全FTP因为它在远程主机上使用不同的程序。但经过测试,它的性能类似。
有效的解决方案是使用一个程序,该程序安装在客户端和服务器上,并且只发送一个数据流(而不是数千个远程控制频道):
如果你有同步在远程服务器上(并在客户端上安装它)使用:
rsync -av -e "ssh [email protected]" [email protected]:/home/user/my_files .
否则你可以使用柏油:
ssh -o [email protected] -e none [email protected] \ tar -c /home/user/my_files | tar -x