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?
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?
Jawaban:
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.
Anda dapat memperoleh informasi tentang file mana yang diakses oleh proses oleh lsof :
lsof -n -p `pidof your_app`
Dan sebaliknya, Anda bisa mendapatkan pid dari proses yang menulis / membaca ke beberapa file:
lsof -n -t file
Anda dapat menggunakan strace
untuk memonitor semua panggilan sistem dari suatu proses, yang mencakup semua akses file.
Saat memulai program:
$ strace ./myserver
Anda juga dapat melampirkan strace ke proses yang berjalan melalui PID itu:
$ ps aux | grep myserver
me 1859 0.0 0.0 25288 424 ? Ss Sep02 0:00 myserver
$ strace -p 1859