【问题标题】:How do I extract a remote tarball on to local machine如何将远程 tarball 提取到本地计算机上
【发布时间】:2018-06-11 11:25:48
【问题描述】:

我有一个包含所有必需 tarball 的远程存储库。我需要在本地 linux 机器上运行命令来获取这个远程 tarball 并在本地解压

我知道如何在远程机器上提取本地 tarball,但是在这里,我如何使用 ssh 实现相反

我不想挂载任何远程目录,也不想在本地机器上留下 tar 文件的痕迹。这可能吗?

【问题讨论】:

  • 您可能对术语有一定程度的混淆。您不会将“远程 tarball 提取到本地计算机”。您下载然后解压缩然后删除 tarball。
  • 使用scp 获取远程tarball,然后在本地解压。如果远程机器接受ssh 连接,它可能也接受scp
  • @marekful:看我的回答,你可以做OP要求的。
  • 请编辑您的帖子以满足您的需要,对于文件传输,您可以使用Secure copy- scp 进行基于 SSH 的访问,或使用 wget 进行 HTTP / Web 访问(匹配问题标题) .对于远程机器访问并进行操作,可能没有其他方法,然后通过ssh连接并远程运行本地脚本

标签: linux redhat tar remote-server sysadmin


【解决方案1】:

当然,您可以使用 ssh 获取文件内容并将其直接通过管道传输到 tar 以在本地机器上解压,而无需将 tarball 实际放入本地文件系统:

ssh remotehost cat /path/to/foo.tar.gz | tar xzf -

确保您首先位于所需的输出目录中。

【讨论】:

  • 这正是我想要的。谢谢你。顺便说一句
  • 知道如果提取是作为超级用户完成的,如何保留提取文件的所有权? --same-owner 似乎不起作用。 ssh remotehost cat /path/to/foo.tar.gz | tar xzf - --same-owner
  • @AnrupNarik:您是说以 root 身份运行整个命令(ssh 和 tar)? man tar 表示--same-owner 是作为超级用户运行时的默认值。也许你可以试试ssh ... | sudo tar xzf -。不过我不确定。
猜你喜欢
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 2018-02-15
相关资源
最近更新 更多