Saya ingin melihat apa yang terjadi di folder server aplikasi saya, yaitu file mana yang diubah oleh proses x atau *.war
file mana yang telah diubah (diganti / dibuat) dalam x menit terakhir.
Apakah ada alat di Linux untuk membantu ini?
shell
files
process
monitoring
Martin V.
sumber
sumber
Jawaban:
Bergantung pada kebutuhan Anda yang sebenarnya, Anda mungkin ingin melihat solusi inotify dan / atau FAM / GAMIN .
sumber
Strace (seperti diuraikan di atas) adalah salah satu cara untuk memeriksa tindakan dari perangkat lunak yang berjalan yang ditentukan.
Beberapa perintah seperti
watch find dir/ -mmin 1
juga dapat membantu memeriksa perubahan pada menit terakhir di beberapa direktori.Bergantung pada apa yang sebenarnya Anda cari, alat yang tidak sah mungkin merupakan alat perdagangan lain di sini.
Misalnya,
inotifywait -mr dir/
memonitor perubahan dalam direktori yang diberikan dan langsung memberi Anda umpan balik dari aplikasi apa pun yang mencoba membuka / membaca / menulis / menutup file. Namun, inotify tidak memberi Anda umpan balik mengenai aplikasi atau proses mana yang mengakses file - itu adalah sesuatu yang dilakukan strace.Harap ketahui bahwa pemantauan tingkat sistem biasanya terbatas digunakan untuk perangkat lunak java yang berjalan di beberapa lingkungan wadah aplikasi, karena Anda hanya melihat wadah (mis. Tomcat), tetapi bukan aplikasi sebenarnya (mis. Perang)) berinteraksi dengan sistem.
sumber
Anda dapat memperoleh informasi tentang file mana yang diakses oleh proses oleh lsof :
Dan sebaliknya, Anda bisa mendapatkan pid dari proses yang menulis / membaca ke beberapa file:
sumber
Anda dapat menggunakan
strace
untuk memonitor semua panggilan sistem dari suatu proses, yang mencakup semua akses file.Saat memulai program:
Anda juga dapat melampirkan strace ke proses yang berjalan melalui PID itu:
sumber
watch find dir/ -mmin 1
tidak bekerja untuk saya, yang dilakukan hanyalah menyalin dan berbeda:Ini cukup banyak sumber daya, tetapi ini menunjukkan semua perubahan antara foto dan
diff
waktu.sumber