Jezor
g/BijęSięZLinuksem

W jaki sposób mogę monitorować w czasie rzeczywistym to, jakie operacje na plikach wykonuje dany proces (znam jego PID)?

Jest coś takiego jak lsof, ale to mi wali wszystkie używane pliki jak leci i ma tylko opcję odświeżania co ileśtam czasu. Jest też strace, ale nie mam pojęcia jak zrobić, żeby mi pluło tym, co chcę i się samo aktualizowało.

Chciałbym log w stylu:
20:23 - proces 1234 otworzył plik /home/jezor/gayporn.mp4
20:23 - proces 1234 zapisał do pliku /home/jezor/gayporn.mp4
20:25 - proces 1234 zamknął plik /home/jezor/gayporn.mp4

I żeby właśnie przy każdym nowym otwarciu / edycji / zamknięciu pliku były dopisywane dane.

#
szarak

@Jezor: jak masz określone foldery które są istotne to zobacz inotify, jak nie to jeszcze pomyślę

Edit: pomyślałem. Zobacz strace, chyba opcja -p.

http://superuser.com/questions/348738/continuously-monitor-files-opened-accessed-by-a-process

Musisz sam doczytać bo mi z telefonu nie wygodnie :-P

#
Jezor

Jest też strace, ale nie mam pojęcia jak zrobić, żeby mi pluło tym, co chcę i się samo aktualizowało.

@szarak: strace przetestowałem, aktualizuje się samo co pyknięcie zegara, więc kurewsko szybko, ale! Wali takim syfem, że tego się czytać nie da, a dodatkowo tak szybko, że jeśli program otworzy plik i zaraz go zamknie to nie ma szans się czegokolwiek dopatrzeć...

#
szarak

@Jezor: no to szukaj jak mu filtrować wyniki przełącznikami, filtruj sam, grepuj, itd. Nikt nie mówi że będzie łatwo.
Analizujesz zachowanie procesu i oczekujesz że będzie prosto jakbyś pozycje na paragonie przeglądał? ;)

#
Jezor

@szarak: ale tak poza tym to strace wali wszystko zamiast robić mi taki ładny log ze zmianami :(

#
szarak

@Jezor: jejku.... przecież mówię: ociosaj sobie go. Nie wiem jakich cudów oczekiwałeś... Chcesz monitorować zachowanie procesu, a przeszkadza Ci konieczność przefiltrowania wyjścia narzędzia... pls :>

#
Jezor

@szarak: tu nie chodzi tyle o filtrowanie, co o hm, historię zmian :P
Nie chcę mieć ciągle wyświetlanego tego samego bo to bez sensu. W milionie wpisów nie znajdę zbyt szybko że zostało cos innego otwarte / zamknięte. Odpalałeś to w ogóle? :D

#
szarak

@Jezor: jasne. Nie potrafisz napisać klarownie czego oczekujesz to nie licz na to że będzie program który dokładnie to zrobi ;)

#
Jezor

Chciałbym log w stylu:
20:23 - proces 1234 otworzył plik /home/jezor/gayporn.mp4
20:23 - proces 1234 zapisał do pliku /home/jezor/gayporn.mp4
20:25 - proces 1234 zamknął plik /home/jezor/gayporn.mp4
I żeby właśnie przy każdym nowym otwarciu / edycji / zamknięciu pliku były dopisywane dane.

@szarak: ale napisalem ;_;

#
szarak

@Jezor: ale Ty leniwy jesteś ;P Może zbadaj to:

https://github.com/ole-tange/tangetools/tree/master/tracefile
https://unix.stackexchange.com/questions/18844/list-the-files-accessed-by-a-program (pierwsza odpowiedź)

btw. teraz się zorientowałem że nie doczytałem oryginalnego posta :D

#
Jezor

@szarak: no i proszę, jak chcesz to potrafisz :D
To jest zajebiste i robi dokładnie co chciałem! Niestety nie działa z aplikacjami odpalonymi przez wine :(

Pokaż ukrytą treśćAle i tak plik którego szukałem znalazłem już dawno, teraz tylko z ciekawości patrzę XD
#
szarak

@Jezor: może ciężko wyśledzić, bo wine odpala dodatkowe procesy i cholera wie co w którym?

Potrzebowałeś tego, bo zgubiłeś plik? :D

#
Jezor

@szarak: potrzebowałem tego, bo nie wiedziałem w jakim pliku gra zapisuje dane. Przeszukałem wszystkie appdaty i inne windowsowe syfy, nigdzie nic nie ma. W logu instalacji dopiero zobaczyłem, ze zapisuje pod c/windows...

#