Pertanyaan Terus pantau file yang dibuka / diakses oleh suatu proses


lsof -p 12345  akan daftar semua file yang dibuka oleh proses yang pid adalah 12345 tetapi hanya untuk waktu tertentu.

Bagaimana kita dapat terus memantau proses dari awal hingga akhir (hingga proses dihentikan) untuk mendaftar / menampilkan setiap file yang diakses oleh proses selama seumur hidup?


22
2017-10-20 13:50


asal


Bagaimana cara memantau file yang dibuka dari suatu proses secara realtime? - phuclv


Jawaban:


Coba dengan strace -p 12345; ia harus melakukan apa yang Anda coba capai.

Output dapat difilter untuk hanya menampilkan file yang dibuka (Komentar Dan D.):

strace -e open -p 12345

catatan: Anda juga dapat melacak proses yang berjalan dengan cepat strace -e open <command>.


28
2017-10-20 14:33



output tidak ramah dan terlalu banyak hal ekstra. - MA1
Anda dapat memperbaikinya dengan perpipaan - strace -p {pid} | grep -i "Open" | tee files_opened.log. Kuncinya adalah grep, yang memungkinkan Anda memfilter output untuk panggilan sistem yang Anda inginkan (mis. open()).
@Ninefingers Sebenarnya strace bisa melakukan itu lebih baik daripada grep dengan -e pilihan: strace -e open - Dan D.
@DanD oh ya, ofc :)
Ketika saya membunuh perintah strace, itu juga membunuh hal yang sedang dilacak. Mengapa ini terjadi (cygwin)? - CMCDragonkai


Utilitas baru fatrace akan melakukan ini: https://launchpad.net/fatrace/

sudo fatrace | grep '(6514)'

Jangan gunakan opsi -p, itu berarti kebalikan dari apa artinya di lsof atau utilitas lainnya.


6
2018-03-04 08:18





Ini akan menggulung ulang menjalankan perintah Anda dan membersihkan layar setiap kali:

watch "lsof -p 12345"

PERINGATAN: ini akan kehilangan akses file cepat dan hanya cocok untuk melihat file yang tahan lama


3
2017-12-05 15:10



Ini agak kikuk dibandingkan dengan menggunakan jawaban lainnya strace. - David Foerster
Itu solusi yang tidak akurat - suatu proses dapat menggunakan file di antara eksekusi lsof - Dor
@Dor Anda dapat mengatur waktu lsof ke sub 1 detik dan meningkatkan ketepatannya. Meskipun kikuk dibandingkan dengan yang lain, Anda salah karena ini adalah solusi yang tidak akurat. - Jordon Bedwell
Jika Anda melihat pada operasi file yang panjang (seperti backup database) ini mungkin merupakan alternatif sederhana yang baik. - jcalfee314