7 votos

"opensnoop" utilidad no funciona con los espacios entre los nombres de archivo, cómo lo arreglo?

Yo uso "opensnoop"

/usr/bin/opensnoop

para mostrar todos los archivos que se abren a partir de diferentes procesos.

Pero cuando quiero específicos de un archivo con

sudo opensnoop -n "directory/filename"

estoy recibiendo este error:

token too large, exceeds YYLMAX

Estoy a la caza de todo para solucionarlo y sólo encontró este sitio web. El autor modificó el opensnoop secuencia de comandos:

esto es debido a la línea 154 en /usr/bin/opensnoop que contiene en línea string NAME = "'$pname'"; que produce un dtrace secuencia de comandos con esta citando en línea string NAME = "foo', 'bar"; y el primer single de la cita termina el dtrace invocación de salir de su script de entrada incompleta. La revisión rápida es para reemplazar la línea 154 en línea string NAME = "'"$pname"'";

pero todavía estoy recibiendo este mensaje de error.

¿Alguien puede ayudarme? O decirme otra utilidad donde puedo mostrar la aplicación que actualmente está trabajando con un archivo específico?

8voto

Fuzzy Purple Monkey Puntos 702

-n está destinado a ser utilizado con el proceso con nombres como sudo opensnoop -n System\ Preferences. Para ver lo que los procesos de acceso a un archivo, utilice sudo opensnoop -f /tmp/a\ b.txt.

El cambio mencionado en el post del blog de errores-n, pero no-f. Para solucionar ambos, editar /usr/bin/opensnoop y reemplazar estas líneas:

inline string PATHNAME = "'$pathname'";
inline string NAME = "'$pname'";

Con esto:

inline string PATHNAME = "'"$pathname"'";
inline string NAME = "'"$pname"'";

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X