Screen big data without interrupting data conversion
Asked Answered
W

0

0

This thread is an extension of this thread where the interruption (CTRL-c) stop the data transfer into less. I would like to create a similar system monitoring data conversion as is found in fdupes. I think this can be reached with GNU screen. The tools tee and buffers may not be needed for this so skip the two sections if you want.

Hex conversion and tee [skip if you know]

You can use whatever hex dumper you want for the task, for instance hexdump -v, od -v -t x1 and xxd -ps for the generation of the example data. You can create binary test data 1GB by the following command, discussed here

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

Let's simplify the old situation without the while loop. Assume you have a very big file. You put it as STIN into less by

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

I am discussing here how to generate you big test files. With a big file, you get an empty screen when you do not press anything, since conversion under way. When you press CTRL-c, you get the data that has been already converted to the less at the bottom of the screen. This is not all data. Does the interruption by CTRL-c end the transfer of data from file into less?

Possibilities to fix this

  • refresh the less somehow if the conversion is still underway
  • bind tee command here somehow

Is there any way to avoid the interruption of the data conversion but be able to look the stream. I think tee command could be one possibility.

Buffers [I think not needed]

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

which does not resolve the problem. I should be able refresh the output in less, where I am using the flag R. Only interruption will show something in less.

I did not manage to get unbuffer command work similarly as stdbuf, discussing it here.

Screen

I think the best way to have a glimpse of the data conversion is to run everything inside screen. Logic: give stdout into less inside screen. Scroll the output in screen. I have completed such a task before which may be found in my thread about screen. I have to think this once more again. I would like to create a similar usability as in the command fdupes. I think tee and buffer may not even be needed.

How can you create screen about monitoring window when less is viewing parallerly data conversion?

Wonderland answered 25/6, 2015 at 11:12 Comment(2)
See #13692384 (unbuffer and stdbuf) Good luck.Weighting
@Weighting I added an attempt about buffers which however does not solve the problem. Another problem may be in refreshing the output in less. I can only disrupt less which shows then the output but I would like see updates which the user can update in less.Deputy

© 2022 - 2024 — McMap. All rights reserved.