Я хотів би побачити, що відбувається в папках мого сервера додатків, тобто які файли змінюються процесом x або які *.war
файли були змінені (замінені / створені) за останні х хвилин.
Чи є в Linux інструмент, який допоможе в цьому?
Я хотів би побачити, що відбувається в папках мого сервера додатків, тобто які файли змінюються процесом x або які *.war
файли були змінені (замінені / створені) за останні х хвилин.
Чи є в Linux інструмент, який допоможе в цьому?
Відповіді:
Залежно від ваших точних потреб, ви, можливо, захочете розглянути інотифіковані та / або рішення FAM / GAMIN .
Strace (як зазначено вище) - це один із способів перевірити дії визначеного запущеного програмного забезпечення.
Деякі команди на зразок watch find dir/ -mmin 1
можуть також допомогти перевірити зміни минулої хвилини в деякому каталозі.
Залежно від того, що саме ви шукаєте, inotify-tools - це, мабуть, ще один інструмент торгівлі.
Наприклад, inotifywait -mr dir/
слідкує за змінами в даному каталозі та моментально дає вам відгуки про будь-яку програму, яка намагається відкрити / прочитати / записати / закрити файл. Однак, inotify не дає відгуку про те, яка програма чи процес отримує доступ до файлу - це те, що потрібно робити.
Будь ласка, знайте, моніторинг на системному рівні зазвичай обмежене в застосуванні програмного забезпечення java, яке працює в деякому середовищі контейнера додатків, оскільки ви бачите лише контейнер (наприклад, Tomcat), але не власне додаток (наприклад, .war)), який взаємодіє із системою.
Ви можете отримати інформацію про те, до яких файлів звертався за допомогою lsof :
lsof -n -p `pidof your_app`
І віце-вірш, ви можете отримати процес, який записує / читає в якийсь файл:
lsof -n -t file
Ви можете використовувати strace
для моніторингу всіх системних викликів процесу, що включає весь доступ до файлів.
Під час запуску програми:
$ strace ./myserver
Ви також можете приєднати strace до запущеного процесу через його PID:
$ ps aux | grep myserver
me 1859 0.0 0.0 25288 424 ? Ss Sep02 0:00 myserver
$ strace -p 1859