在不中断数据转换的情况下屏蔽大数据

时间:2015-06-25 11:12:12

标签: multithreading parallel-processing buffer gnu-screen tee

此线程是此thread的扩展,其中中断(CTRL-c)将数据传输停止为更少。 我想创建一个类似的系统监控数据转换,如fdupes中所示。 我认为这可以通过GNU screen来实现。 可能不需要工具teebuffers,因此如果您愿意,请跳过这两个部分。

十六进制转换和三通[如果你知道的话跳过]

您可以使用任务所需的十六进制转储程序,例如hexdump -vod -v -t x1xxd -ps来生成示例数据。 您可以通过以下命令创建2GB的二进制测试数据,讨论here

dd if=/dev/urandom of=sample.bin bs=64M count=16

让我们在没有while循环的情况下简化旧情况。 假设你有一个非常大的文件。 你把它作为STIN加入

hexdump -v sample.bin | less -s -M +Gg

我正在讨论here如何生成大型测试文件。 使用大文件时,如果没有按任何内容,则会出现空白屏幕,因为正在进行转换。 按CTRL-c时,您将获得已在屏幕底部转换为less的数据。 这不是所有数据。 CTRL-c的中断是否会结束从文件到较少的数据传输?

解决此问题的可能性

    如果转换仍在进行中,
  • 以某种方式刷新
  • 以某种方式绑定tee命令

有没有办法避免数据转换的中断,但能够查看流。 我认为tee命令可能是一种可能性。

缓冲区[我认为不需要]

stdbuf -i0 -o0 -e0 xxd -ps sample.bin | stdbuf -i0 -o0 -e0 less -s -M +G

无法解决问题。 我应该能够在较少的情况下刷新输出,我使用标志R。 只有中断会在less中显示。

我无法让unbuffer命令与stdbuf类似地工作,讨论它here

屏幕

我认为了解数据转换的最佳方法是在screen内运行所有内容。 逻辑:将标准输入less内的screen。 在screen中滚动输出。 我已经完成了这样的任务,之前可以在我的帖子中找到screen。 我必须再次考虑这个问题。 我想在命令fdupes中创建类似的可用性。 我认为甚至可能不需要teebuffer

当较少查看并行数据转换时,如何创建有关监视窗口的屏幕?

0 个答案:

没有答案