моніторинг змін файлів + процес доступу до файлів


19

Я хотів би побачити, що відбувається в папках мого сервера додатків, тобто які файли змінюються процесом x або які *.warфайли були змінені (замінені / створені) за останні х хвилин.

Чи є в Linux інструмент, який допоможе в цьому?


Привіт, спробуйте ознайомитися з цим посібником, щоб налаштувати аудит для моніторингу каталогів і файлів xmodulo.com/how-to-monitor-file-access-on-linux.html
Sifungurux

1
Я дійшов до цього питання за допомогою пошуку в Google, але я знайшов свою відповідь тут: unix.stackexchange.com/questions/18844/…
Квентін Скусен

Погляньте на SystemTap. uselessuseofcat.com/?p=281
Стів

Відповіді:



14

Strace (як зазначено вище) - це один із способів перевірити дії визначеного запущеного програмного забезпечення.

Деякі команди на зразок watch find dir/ -mmin 1можуть також допомогти перевірити зміни минулої хвилини в деякому каталозі.

Залежно від того, що саме ви шукаєте, inotify-tools - це, мабуть, ще один інструмент торгівлі.

Наприклад, inotifywait -mr dir/слідкує за змінами в даному каталозі та моментально дає вам відгуки про будь-яку програму, яка намагається відкрити / прочитати / записати / закрити файл. Однак, inotify не дає відгуку про те, яка програма чи процес отримує доступ до файлу - це те, що потрібно робити.

Будь ласка, знайте, моніторинг на системному рівні зазвичай обмежене в застосуванні програмного забезпечення java, яке працює в деякому середовищі контейнера додатків, оскільки ви бачите лише контейнер (наприклад, Tomcat), але не власне додаток (наприклад, .war)), який взаємодіє із системою.


8

Ви можете отримати інформацію про те, до яких файлів звертався за допомогою lsof :

 lsof -n -p `pidof your_app`

І віце-вірш, ви можете отримати процес, який записує / читає в якийсь файл:

 lsof -n -t file

6

Ви можете використовувати 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

було б чудово контролювати також папку, а не PID, дякую. btw strace -p PID працює для мене в Ubuntu.
Мартін В.

0

watch find dir/ -mmin 1 не працював для мене, те, що робив, було просто копіювати та відрізняти:

cp -r dir /tmp/olddir
# initialize/whatever
diff -r dir /tmp/olddir

Це досить ресурсомістко, але він показує всі зміни між знімком і diffчасом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.