Monitorear la actividad del sistema de archivos

Monitorear la actividad del sistema de archivos

Digamos que tengo un programa y quiero monitorear la actividad de su sistema de archivos (qué archivos/directorios se crean/modifican/eliminan, etc.). Este programa puede ser capaz de generar procesos adicionales y, por lo tanto, me gustaría obtener la actividad de estos procesos generados también.

¿Cómo debo hacer esto?

Respuesta1

Puedes usarstracepara esto:

strace -f -e trace=file command args...

stracerastrea las llamadas al sistema e imprime una descripción de ellas según el error estándar a medida que ocurren. La -fopción le indica que también realice un seguimiento de los procesos y subprocesos secundarios. -ele permite modificar las llamadas que rastreará: -e trace=fileregistrará cada uso de open, unlinketc., pero ninguna acción que no sea de archivo.

Si desea ver qué se leyó y se escribió en los archivos, cámbielo a -e trace=file,read,write; También puede enumerar allí cualquier llamada adicional que desee examinar. Si omite ese argumento por completo, recibirá todas las llamadas al sistema.

El resultado es así (lo ejecuté mkdir /tmp/testen un shell rastreado):

[pid  1444] execve("/usr/bin/mkdir", ["mkdir", "/tmp/test4"], [/* 33 vars */]) = 0
[pid  1444] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
[pid  1444] open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
[pid  1444] open("/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
[pid  1444] open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
[pid  1444] mkdir("/tmp/test", 0777)    = 0
[pid  1444] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=1444, si_status=0, si_utime=0, si_stime=0} ---

Puede iniciar sesión en un archivo en lugar del terminal con -o filenamey hacer que la salida (aún) sea más detallada con -v. También es posible adjuntarlo a un proceso ya existente con -p PID, en caso de que sea más útil.

Si está buscando hacer esto mediante programación, en lugar de inspeccionarse usted mismo, mire laptracellamar, que es stracesobre lo que se construye.

información relacionada