Я хотел бы видеть, что происходит в папках моего сервера приложений, то есть какие файлы были изменены процессом x или какие *.war
файлы были изменены (заменены / созданы) за последние x минут.
Есть ли инструмент в Linux, чтобы помочь с этим?
shell
files
process
monitoring
Мартин В.
источник
источник
Ответы:
В зависимости от ваших конкретных потребностей, вы можете захотеть изучить решения inotify и / или FAM / GAMIN .
источник
Strace (как описано выше) является одним из способов проверки действий указанного работающего программного обеспечения.
Некоторая команда like
watch find dir/ -mmin 1
может также помочь проверить изменения за последнюю минуту в каком-либо каталоге.В зависимости от того, что именно вы ищете, inotify-tools , вероятно, еще один инструмент торговли здесь.
Например,
inotifywait -mr dir/
отслеживает изменения в указанном каталоге и мгновенно выдает отзыв о любом приложении, пытающемся открыть / прочитать / записать / закрыть файл. Однако inotify не дает вам обратной связи о том, какое приложение или процесс обращается к файлу - это то, что делает strace.Пожалуйста, знайте, что мониторинг на системном уровне обычно имеет ограниченное применение для программного обеспечения Java, работающего в некоторой среде контейнера приложений, поскольку вы видите только контейнер (например, Tomcat), но не реальное приложение (например, .war), взаимодействующее с системой.
источник
Вы можете получить информацию о том, какие файлы были доступны процессу с помощью lsof :
И наоборот, вы можете получить pid процесса, который пишет / читает в некоторый файл:
источник
Вы можете использовать
strace
для мониторинга все системные вызовы процесса, который включает в себя весь доступ к файлам.При запуске программы:
вы также можете прикрепить strace к запущенному процессу через его PID:
источник
watch find dir/ -mmin 1
у меня не сработало, что было просто скопировать и изменить:Он довольно ресурсоемкий, но показывает все изменения между моментальным снимком и
diff
временем.источник