Есть ли способ выяснить, где в файле, из которого читается программа? Похоже, что можно справиться с strace или dtrace?Отслеживание хода выполнения программы через файл?
Для выяснения вопроса и дать мотивацию, что у меня есть файл журнала 10GB и я подсчета количества уникальных линий:
$ cat log.txt | sort | uniq | wc -l
Могу ли я проверить, где в файле cat
находится в настоящее время, эффективно давая ход выполнения команды? Использование lsof
, я не могу показаться, чтобы получить смещение последнего чтения файла, который я думаю, что будет делать трюк:
$ lsof log.txt
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
cat 16021 erik 3r REG 0,22 13416118210 1078133219
Изменить: Я извиняюсь, пример я дал слишком узок и не попадает в точку , В идеале, для произвольной программы, я хотел бы видеть, где в файлах читаются (независимо от трубы).
Итак, вы хотите отследить ввод-вывод стороннего процесса? Я не вижу причины для того, чтобы следить за ходом кошки. Есть ли более реальное объяснение того, что вы на самом деле после? –
Это мое реальное объяснение. Я выполнял эту команду около 30 минут, и было бы неплохо увидеть прогресс, достигнутый в файле. Другой пример: пользователь загружает большой файл с веб-сервера, как я могу проверить, где последний прочитал, чтобы определить ход загрузки? – erikreed