使用 scp 将 jar 文件的内容提取到curl

使用 scp 将 jar 文件的内容提取到curl

我在一个盒子上有一个包含 javadoc 树的 jar 文件。我需要将其转移到另一个盒子并将 jar 解压到特定目录(可能不存在)中。

我有我想用来登录远程盒子的主体的用户名/密码,但我没有可以使用的 ssh 密钥。

我也许可以使用expect来完成这项工作,但我想看看我是否可以完全使用curl来完成它。我成功地使用如下命令将 jar 文件传输到远程盒子:

curl -k -T file.jar -u user:password scp://host/path/file.jar

要求中更困难的部分是解压 jar,或者以某种方式通过 stdout 从源解压到管道中,以在远程将其解压。为此,我尝试了以下方法:

gzip -c file.jar | curl -k -T - -u user:password scp://host/path/stuff

此操作失败并显示“curl: (25) SCP 需要已知文件大小才能上传”。

我是否应该进行完整的“预期”实施以使这一切顺利进行?我什至没有考虑过如果目标目录不存在,curl 是否可以创建目标目录。

答案1

我经历过完全相同的问题。我不知道确切的原因,但很可能通过 scp 的curl 只能复制整个文件,它知道大小。可能是scp本身的限制。

解决方案非常简单。只需将协议从 scp 更改为 sftp 即可正常工作。

gzip -c file.jar | curl -k -T - -u user:password sftp://host/path/stuff

相关内容