Setara dengan SysInternals FileMon untuk Linux?


Jawaban:


7

Anda sedang mencari strace. Lihat di sini: https://wiki.ubuntu.com/Strace


2
Seperti yang saya pahami, menjalankan filemon memungkinkan pengguna untuk melihat semua akses file. strace di sisi lain, mengharuskan Anda untuk menentukan aplikasi mana yang akan dibuka terlebih dahulu. Ini mengharuskan Anda untuk mengetahui sebelumnya, aplikasi yang mengakses file-file itu. Bagaimana jika Anda tidak tahu aplikasi mana yang mengakses file-file yang Anda tertarik melihatnya?
chuacw

8

Itu tergantung pada apa yang Anda inginkan:

  • Secara umum, Anda ingin melihat inotify untuk melihat semua akses file yang dibuat oleh proses apa pun.

  • Dalam yang kecil, strace akan membiarkan Anda menonton syscalls proses tertentu. Strace sangat mengagumkan. Anda dapat melacak panggilan proses untuk 'membuka' dengan melakukan strace -f -eopen $cmd, misalnya. The halaman manual memiliki rincian lengkap tentang sintaks, tentu saja.


Terima kasih pjz. Untuk lebih spesifik - saya mengalami beberapa kesulitan untuk memulai dengan Ogre3d di Ubuntu. Aplikasi pengujian saya tampaknya mencari beberapa file .cfg saat start-up. Saya ingin mendengarkan semua upaya untuk membuka file sehingga saya dapat memastikan file yang benar tersedia dan memiliki izin yang benar.
chickeninabiscuit

strace -e open ./app
Justin

2

stracedi depan aplikasi awal adalah baik untuk menonton apa yang sedang dilakukan aplikasi.
lsofsenang melihat file mana yang menggunakan aplikasi yang sudah berjalan.

BTW:
lsof -ni:22 menunjukkan proses mana yang menggunakan Port 22.



1

Berikut adalah contoh penggunaan strace untuk melacak perubahan file:

strace -f -e trace=file -p7546 -o /tmp/outputfile

-fmemastikan bahwa peristiwa dari proses anak ditangkap.
-e trace=filemengatakan bahwa kita harus menangkap terkait berkas syscalls (misalnya stat, open, futexdll)
-padalah proses ID (diambil dari ps -auxatau cara lain) -oyang ditentukan outputfile yang (mungkin ada banyak data dan Anda malah bisa menggunakan grep sebagai filter.




0

Ini sudah tua, tapi saya pikir itu ide yang bagus untuk memperbaruinya untuk kenyataan hari ini.

Untuk debug hanya satu proses dan anak-anak mereka, strace masih menjadi cara terbaik. Itu dapat dengan mudah menunjukkan semua akses file, bahkan pada file yang hilang.

Untuk debug sistem generik, fitur audit dalam kernel dapat melakukan itu dan merupakan cara yang disarankan. Tidak perlu patch pada kernel terbaru, hanya paket audit yang diinstal

di sini adalah gui sederhana untuk menggunakannya:

audit-gui

Ini mereplikasi filemon windows, memonitor akses file untuk semua tempat, proses, dll

periksa juga posting ini


0

Inilah yang bekerja dengan baik untuk saya (Linux Mint 19.1):

sudo lsof 2>&1 | grep programnamehere

Tidak yakin mengapa 2>&1diperlukan, tetapi tidak disaring kecuali saya menggunakannya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.