![将非常大的数据(约 100 Gb)从一台服务器移动到另一台服务器](https://linux22.com/image/661514/%E5%B0%86%E9%9D%9E%E5%B8%B8%E5%A4%A7%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%88%E7%BA%A6%20100%20Gb%EF%BC%89%E4%BB%8E%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%8F%A6%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我们正在移动服务器,我需要将所有数据从服务器 A 传输到服务器 B。
我有一个大约 100Gb 的 tar.gz,其中包含所有服务器 A 文件。
我真的不想在我的计算机上本地下载文件,然后再将其上传到服务器 B。
我只能通过 ftp 访问服务器 A。这意味着不能通过 ssh。但是,我可以通过 ssh 访问服务器 B。
传输文件的最佳方法是什么?我考虑将 tar.gz 文件暂时移动到 public_html,然后使用 wget 下载。这样可行吗?否则,我可以通过服务器 B 上的 ssh 会话使用 ftp。
答案1
就像是:
ssh user@serverB
nohup wget -bqc ftp://path/largefile.tar.gz
wget 选项:
-b : run in background
-q : quiet
-c : resume broken download (means you can restart if it breaks)
这会在后台运行 wget,因此(希望)如果您退出 ssh shell,它会继续运行。好的,我认为您需要 nohup 来确保在您注销时情况如此
因为您是从服务器 B 启动下载的,所以您的台式机除了进行设置外不参与文件传输。
答案2
如果数据不是很敏感,并且您的连接足够安全,请通过 ssh 进入 B 并通过 ftp 直接从 A 下载。由于加密工作开销,SSH 会使您的下载速度明显变慢。如果可能,请将 100GB 文件拆分成多个,尤其是当 A 上的 ftp 服务器不支持下载续传时。