ли через питон запускать любой процесс и контролировать к каким файлам он имел доступ во время своей работы?
т.е. например я запускаю сборку приложения cmake'ом через python скрипт, и во время выполнения сборки я отслеживаю к каким файлам имел доступ процесс и под процессы, тем самым я получаю минимально необходимый список файлов который нужен для сборки какой либо библиотеки.
или просто запускать процесс под присмотром питона, потом смотреть отчет, куда лез процесс, какие файлы читал, какие менял, у каких просто смотрел аттрибуты...
если еще точнее, хочу получить возможность отслеживать access time для файлов конкретными процессами, как например если бы я смонтировал файловую систему в режиме strictatime
P.S. может не питон, может bash и какие то утилитки из состава busybox ...
Ну, есть варианты в принцыпе. Например, установить LD_PRELOAD, в котором перехватывать все варианты открытия файла (open/creat/openat... Кто там ещё?) Но то такоэ всё... Я бы настоятельно посоветовал не страдать хернёй, а собирать в чистых системах (дебьюлд/докер/etc) и добавлять в образы самый минимум согласно документацыи, пока не соберётся.
тут немного другое, я и так собираю в чистых и добавляется минимум... но, есть либа, например expat ( например! ) , вот собираю я ее, и есть в этой либе 100500 файлов, тестов, экзамлов и всего такого.. хочу либы вычистить по полной, оставить только исходники и скрипты которые реально используются при сборке для этого монтирую файловую систему в режиме stricatime, записываю в текстовый файл метки времени всех исхолников либы, потом собираю либу, и повторно беру метки времнеи всех файлов либы, сравниваю с метками до сборки... все метки что не поменялись - файлы котоыре не блыи использованы в сборке ни коим образом, все удалю, проверяю сборку еще раз - все работает... таким образом все работает, но только при условии что файловая система смотнтирована с опцией strictatime, хотелось бы иметь возможность без этой опции следить за процессом сборки )
strace -f 🤔
хм... гляну маны, спасибо
Обсуждают сегодня