我需要复制一个 .war 文件,我目前只能通过“ http://server:host/directory/my_file.war ”访问 UI 。所以它没有存储在文件服务器上。我登录到服务器 A 并且文件需要保存在服务器 B 上。
通常是否可以使用 scp 命令从服务器 A 下载未存储在文件服务器上的文件到服务器 B?
提前致谢。
不,scp 不支持http:. 首先使用curl或wget(或使用浏览器保存)将文件复制到您的计算机,然后使用 scp 从本地文件系统复制。
如果您在服务器 B 上有 shell 访问权限,只需 ssh 到服务器 B,然后在wget那里运行以直接拉取文件。这更好,因为它只使用 serverB 和 web 服务器上的带宽(如果这对您很重要) - 请参阅下面的替代解决方案,该解决方案使用更多带宽。
或者,如果由于某种原因您无法将文件直接下载到服务器 B,请执行以下操作:
serverA$ wget --output-document=- http://server:host/directory/my_file.war | \
ssh user@serverB "cat > /path/to/my_file.war"
Run Code Online (Sandbox Code Playgroud)
这告诉wget将 URL 获取到 stdout,然后ssh将该数据发送到 serverB 并将其重定向到一个文件。不幸的是,scp无法从 stdin 读取 a,因此您需要在 serverB 上访问 shell 才能使其正常工作。请注意,如果您这样做,您将在服务器 A 上使用 2 倍带宽(从网络服务器拉取文件,然后将其推送到服务器 B),并且您将在网络服务器和服务器 B 上使用 1 倍带宽。
| 归档时间: |
|
| 查看次数: |
1248 次 |
| 最近记录: |