Вот сижу я бездельничаю в ожидании пока tshark прожует 8 гигабайтный pcap дамп.
Но tshark мало того, что тормозной, так еще и не дает никакой информации о прогрессе.
Но как добиться информации о прогрессе, если очень хочется?
Вспоминаем чудную книгу Linux API interfaces. Там как раз целая глава про файловые дескрипторы и что линукс внутри себя хранит позицию, на которой приложение читает файл!
Итак, достанем ее :)
Для начала узнаем, какие файлы открыты нашим приложением:
sudo ls -la /proc/4487/fd
total 0
dr-x------ 2 administrator administrator 0 февр. 4 18:11 .
dr-xr-xr-x 9 administrator administrator 0 февр. 4 18:08 ..
lrwx------ 1 administrator administrator 64 февр. 4 18:11 0 -> /dev/pts/4
l-wx------ 1 administrator administrator 64 февр. 4 18:11 1 -> pipe:[896628024]
lrwx------ 1 administrator administrator 64 февр. 4 18:11 2 -> /dev/pts/4
lr-x------ 1 administrator administrator 64 февр. 4 18:11 3 -> /dev/urandom
lr-x------ 1 administrator administrator 64 февр. 4 18:11 4 -> /megadump.pcap
Отлично, нам здесь нужна цифра 4 (это номер дескриптора нашего чудо-файла)!
Итак, получаем информацию о позиции чтения в файле:
cat /proc/4487/fdinfo/4 pos: 7641444352flags: 0100000mnt_id: 22
Получаем общий размер файла:
stat -c "%s" /megadump.pcap
8437696302
Ну что же, получим прогресс в процентах:
perl -e 'print scalar 8050094080/8437696302*100, " %\n"'95.4063027617132 %
Ну что же, обнадеживает!