【问题标题】:Can I extract files from one tarball directly into a new one?我可以将文件从一个 tarball 直接提取到一个新的吗?
【发布时间】:2013-03-01 20:40:29
【问题描述】:

我正在开发一个高性能计算集群,由于我不会在这里解释的原因,他们希望我们通过 NFS 来回发送一个文件。我的作业使用从以前的作业生成的数据并依赖于工作目录的结构。我在data.tar 中保存了所有以前的结果。

我需要从 data.tar 中提取将在下一个作业中使用的目录,并将它们从登录节点发送到计算节点,如果可能的话,作为一个新的 tarball。有没有一种方法可以基本上将tar -xvf dir1/dir1.1 dir3/dir3.1 输出流直接传递到新的tar -cvf 命令?

或者,我是否可以使用管道将第一次提取的结果直接通过管道传输到本地节点的/scratch 目录,该管道将充当单个 I/O 活动并有效地充当跨 NFS 写入单个文件?

提前致谢。如果我能更清楚地了解我的需求,请告诉我。

【问题讨论】:

    标签: cluster-computing pipe tar named-pipes nfs


    【解决方案1】:

    我在想你可以设置一个 tar 管道并通过 ssh 流式传输?

    类似:

    猫 foobar.tar | ssh -C root@my.serv.er "(cd /mnt/user/scratch/ && tar xvf -)"

    【讨论】:

    • 所以我实际上正在考虑 tar 管道,但这似乎并没有包含我只需要来自 foobar.tar 的几个子目录树的想法。只是将 foobar.tar 移动到 workerhost:/scratch 没什么大不了的,除了它的 ~200G 之外,我只需要大约 10G 来运行下一个工作。我想提取 10G 子树,但在将其发送到 workerhost:/scratch 之前或之后重新压缩,这样我就不会在多个 I/O 事件中通过网络发送大量相当大的文件并惹恼管理员!
    • 啊,是的,如果您只需要一些,那么转移所有内容是没有意义的!会重新考虑!
    猜你喜欢
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多