Estoy intentando depurar una aplicación en Ubuntu: necesito escuchar los intentos de abrir archivos (incluso para archivos que no existen).
Process Monitor (anteriormente conocido como FileMon ) está disponible en Windows: ¿qué hay en el cinturón de utilidades de Ubuntu?
¡Gracias!
Ashley
Depende de lo que quieras:
En general, desea ver inotify para ver todos los accesos a archivos que realiza cualquier proceso.
En el pequeño, strace le permitirá ver las llamadas al sistema que realiza un proceso en particular. Strace es bastante asombroso. Puede rastrear las llamadas de un proceso a 'abrir' haciendo
strace -f -eopen $cmd
, por ejemplo. La página del manual tiene todos los detalles sobre la sintaxis, por supuesto.fuente
strace
frente a una aplicación de inicio es bueno ver lo que está haciendo la aplicación.lsof
es bueno ver qué archivos está usando una aplicación que ya se está ejecutando.Por cierto:
lsof -ni:22
muestra qué proceso está utilizando el puerto 22.fuente
SGI tiene una herramienta que quizás quiera probar: http://oss.sgi.com/projects/fam/
fuente
Aquí hay un ejemplo del uso de strace para rastrear los cambios de archivos:
strace -f -e trace=file -p7546 -o /tmp/outputfile
-f
garantiza que se capturen los eventos de los procesos secundarios.-e trace=file
dice que deberíamos capturar las llamadas al sistema relacionadas con el archivo (pstat
. ej .open
,futex
etc.)-p
es el ID del proceso (recuperado deps -aux
u otro medio) que-o
especifica el archivo de salida (puede haber muchos datos y en su lugar podría usar grep como filtro.fuente
Prueba sysdig . Por ejemplo:
fuente
Esto requiere ayuda de Mortadelo. http://gitorious.org/mortadelo
fuente
Esto es viejo, pero creo que es una buena idea actualizarlo para la realidad de hoy.
Para depurar solo un proceso y sus hijos, strace sigue siendo la mejor manera. Puede mostrar fácilmente todo el acceso a los archivos, incluso en los archivos que faltan.
Para la depuración genérica del sistema, la función de auditoría en el núcleo puede hacer eso y es la forma recomendada. No necesita ningún parche en los núcleos recientes, solo el paquete de auditoría instalado
Aquí hay una interfaz gráfica de usuario simple para usarlo:
auditoría-gui
Esto replica el filemon de Windows, monitoreando el acceso al archivo para todos los lugares, procesos, etc.
También revisa la publicación
fuente
Esto es lo que funcionó bien para mí (Linux Mint 19.1):
sudo lsof 2>&1 | grep programnamehere
No estoy seguro de por qué
2>&1
era necesario, pero no se filtró a menos que lo usara.fuente