Monitoreo de cambios de archivo + acceso a procesos


19

Me gustaría ver qué sucede en las carpetas de mi servidor de aplicaciones, es decir, qué archivos se cambian por el proceso x o qué *.wararchivos se han cambiado (reemplazado / creado) en los últimos x minutos.

¿Hay alguna herramienta en Linux para ayudar con esto?


Hola, eche un vistazo a esta guía para configurar audited para monitorear directorios y archivos xmodulo.com/how-to-monitor-file-access-on-linux.html
Sifungurux

1
Llegué a esta pregunta a través de la búsqueda de Google, pero encontré mi respuesta aquí: unix.stackexchange.com/questions/18844/…
Quentin Skousen

Echa un vistazo a SystemTap. uselessuseofcat.com/?p=281
steve

Respuestas:



14

Strace (como se describe anteriormente) es una forma de verificar las acciones de un software en ejecución específico.

Algunos comandos como watch find dir/ -mmin 1también pueden ayudar a verificar los cambios de última hora en algún directorio.

Dependiendo de lo que esté buscando exactamente, inotify-tools es probablemente otra herramienta de comercio aquí.

Por ejemplo, inotifywait -mr dir/monitorea los cambios en el directorio dado e instantáneamente le brinda comentarios sobre cualquier aplicación que intente abrir / leer / escribir / cerrar un archivo. Sin embargo, inotify no le brinda retroalimentación sobre qué aplicación o proceso está accediendo al archivo; eso es algo que strace hace.

Tenga en cuenta que la supervisión a nivel del sistema suele ser de uso limitado para el software java que se ejecuta en un entorno de contenedor de aplicaciones, ya que solo ve el contenedor (por ejemplo, Tomcat), pero no la aplicación real (por ejemplo, .war) que interactúa con el sistema.


8

Puede obtener información sobre a qué archivos accede por proceso lsof :

 lsof -n -p `pidof your_app`

Y viceversa, puede obtener un pid de proceso que escribe / lee en algún archivo:

 lsof -n -t file

6

Puede usar stracepara monitorear todas las llamadas al sistema de un proceso, que incluye todo el acceso a los archivos.

Al comenzar un programa:

$ strace ./myserver

También puede adjuntar strace a un proceso en ejecución a través de su PID:

$ ps aux | grep myserver
me      1859  0.0  0.0  25288   424 ?        Ss   Sep02   0:00 myserver
$ strace -p 1859

sería genial monitorear también por carpeta, no por PID, gracias. btw strace -p PID funciona para mí en Ubuntu.
Martin V.

0

watch find dir/ -mmin 1 no funcionó para mí, lo que hizo fue simplemente copiar y diferir:

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

Es bastante intensivo en recursos, pero muestra todos los cambios entre la instantánea y el difftiempo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.