在实际磁带档案中找到条目或EOF后停止tar

淡淡的

我刚刚收到了一堆LTO-5和一个磁带库,以及提取文件子集这一艰巨的任务。

数量级是从上述堆中取出60盘磁带,我需要拉出大约10,000个文件,每盘磁带70,000个(可能在六个或十二个asdd目录中)磁带库正在运行tar 1.23

我确实已经按照每个磁带的内容预先存在转储,tar --list所以我很乐意将其与我需要拉出的文件列表进行协调,以便可以提供适当的记录流以进行抓取,但是

tar -xvf /dev/nst0 -b $file_to_pull

直到我走到磁带的尽头,才停下来。这是有道理的-tar可能会被提供一个通配符模式,因此它只会在归档末尾出现。

我想我可以通过只输入目录glob并在不使用磁带的情况下清除不需要的文件来解决此问题,但是我不禁要想,有一种方法可以在EOF边界处停止tar并跳过清除步骤。正确的?但是,在我所有的狩猎活动中,我还没有发现任何类似的东西。

因此,问题:

  • 是否有办法使tar(或heck,其他任何东西)从磁带头所在的位置仅拉出一个文件,然后停止还是在焦油到达EOF并停止信号时发出信号?

  • 或者,我在精神上以这种奇怪的方式进行攻击吗?如果有人得到,很高兴接受替代建议。

当然,请注意,这不是一个现在无法解决的问题,只是我当前的选择似乎非常尴尬-这是我第一次真正要处理这种规模的磁带(而我们的其他磁带都是LTFS) )

这里

您可以要求tar每隔几个街区在它们称为检查点的位置执行一个操作此操作可以测试是否已提取了所需文件,并杀死了tar。我使用tar文件尝试了它,看来效果还不错。

这是我进行测试的示例脚本,将/ usr / bin解压缩并将usr / bin / bash解压缩到/ tmp / usr / bin / bash。默认的--checkpoint是10个块。

#!/bin/bash

cat <<\! >/tmp/checkdone
#!/bin/bash
# env has TAR_CHECKPOINT TAR_ARCHIVE TAR_VERSION TAR_BLOCKING_FACTOR
# tar -C directory is NOT used for checkpoint action!
want=$1

if size=$(stat --printf='%s\n' "$want" 2>&1)
then if [ "$(</tmp/lastsize)" = "$size" -a -s /tmp/pid ]
    then  echo "same size $size. time to stop"
          ls -l "$want"
          >/tmp/lastsize
          kill -1 $(</tmp/pid)
    else  echo "partial size $size"
          echo "$size" >/tmp/lastsize
    fi
else echo -n "."
fi
!
chmod +x /tmp/checkdone
>/tmp/lastsize
>/tmp/pid

tar -cf /tmp/tar /usr/bin/ # create example tar file
# wanted file. must be in current dir
want=usr/bin/bash
cd /tmp || exit # dont use tar -C dir

tar -xvf /tmp/tar "$want" --checkpoint=10 --checkpoint-action=exec="/tmp/checkdone $want" &
echo $! >/tmp/pid
wait

rm /tmp/tar /tmp/pid /tmp/lastsize /tmp/checkdone
rm -fr /tmp/usr

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在tar.gz档案中找到文件

来自分类Dev

在VBA中找到文件后如何停止递归搜索

来自分类Dev

从拆分档案的各个部分中找到损坏的部分

来自分类Dev

在资源中找到未签名的条目

来自分类Dev

在PARI / GP中找到矢量条目?

来自分类Dev

在SQL Server中找到丢失的组条目

来自分类Dev

如何从Java代码中找到实际显示密度(DPI)?

来自分类Dev

我如何在python中找到实际的逻辑回归模型?

来自分类Dev

TypeScript找到条目后中断循环

来自分类Dev

Java 8:在资源中找到未签名的条目

来自分类Dev

在SQL列中找到相似的条目并按频率排序

来自分类Dev

在我的工作电脑主机文件中找到怪异的条目

来自分类Dev

在JavaScript中找到最接近所需值的数组条目?

来自分类Dev

如何使用tar验证磁带备份?

来自分类Dev

从tar -c恢复部分覆盖的磁带

来自分类Dev

在Haskell中列出TAR档案

来自分类Dev

tar档案创建日期错误

来自分类Dev

Tar:如何忽略档案本身

来自分类Dev

在 mysql 和 php 中找到重复的条目并在下面列出所有条目

来自分类Dev

通过与一个条目进行比较,在列表中找到最接近的条目

来自分类Dev

在 SpeechToText 中找到单词之前,如何停止该过程?

来自分类Dev

找到正确条件后,排序算法停止

来自分类Dev

找到'\ 0'后如何停止读取pipe()

来自分类Dev

找到Python深度优先搜索后停止

来自分类Dev

在C ++中被EOF停止后如何恢复输入流?

来自分类Dev

在C ++中被EOF停止后如何恢复输入流?

来自分类Dev

tar使用bzip2退出:(stdin):提取后忽略EOF后的尾随垃圾

来自分类Dev

在PHP中找到匹配项后获得一行

来自分类Dev

克隆元素后,在文档中找到原始元素

Related 相关文章

热门标签

归档