OS X: ¿Puedo hacer un seguimiento de los archivos a los que se accede en un disco?

0

Tengo varios discos duros externos. Son unidades de consumo que se "van a dormir" (giran hacia abajo) automáticamente cuando no se usan; No puedo (y no quiero) ejecutarlos 24x7. Los uso estrictamente para copias de seguridad y almacenamiento a largo plazo.

Muy a menudo, usaré alguna característica irrelevante de un programa (como "Deshacer" en Microsoft Word en un documento que está en la unidad principal): la aplicación se congelará y escucharé un disco duro externo. arriba. (O cada unidad individual gira, una a la vez.) Entonces el programa se descongelará. El programa no parece ser molestado si desmonto las unidades; simplemente deja de hacer eso.

Y me pregunto: ¿Qué demonios está buscando? Así que puedo averiguar cómo detener esta molestia. Por ejemplo, si está tocando fuentes que se encuentran en la unidad externa, puedo asegurarme de que no se pueda acceder a ellas dentro de los archivos ZIP.

Mi pregunta es: ¿Cómo puedo tener un log persistente de accesos a archivos por aplicaciones? He intentado usar lsof | grep /Volumes/ pero es solo una instantánea de los archivos abiertos actualmente ; Parece que siempre se pierde el momento en que la aplicación tiene ese archivo abierto.

Probé el enfoque fs_usage, recibí ráfagas de este mensaje: fs-usage: buffer overrun, events generated too quickly: 123456 Pero, finalmente, esto surgió:

23:32:47  getattrlist       /Volumes/Teeny/RSreorg                                                         0.000006   Microsoft Ex
23:32:47  getattrlist       /Volumes/Teeny/RSreorg                                                         0.000002   Microsoft Ex
23:32:59  getattrlist       /Volumes/Teeny/RSreorg                                                         0.000005   Microsoft Ex
23:32:59  getattrlist       /Volumes/Teeny/RSreorg                                                         0.000002   Microsoft Ex
23:32:59  getattrlist       /Volumes/Teeny/RSreorg                                                         0.000003   Microsoft Ex
23:32:59  getattrlist       /Volumes/Teeny/RSreorg                                                         0.000002   Microsoft Ex

Esto sucedió cuando estaba cerrando una hoja de cálculo de Excel. Eso es un disco de bloc de notas, y ese directorio fue eliminado hace años. La hoja de cálculo era un archivo nuevo que no tenía nada que ver con esa ubicación.

La búsqueda en la unidad de la cadena de texto RSreorg reveló solo 2 archivos, ambos ~/Library/Preferences/com.microsoft.office.plist , uno con errores al final (archivo temporal?) ... La búsqueda web revela que Microsoft almacena mis claves de licencia allí, pero el escaneo de texto Revela cientos de otros directorios inútiles e incorrectos. ¿Qué diablos está haciendo Microsoft?

Y al parecer esto La respuesta respalda la eliminación total del archivo .

    
pregunta Harper 01.07.2016 - 11:47

2 respuestas

2

Solía haber una buena aplicación gráfica gratuita llamada fseventer para hacer esto, pero realmente no funcionó en 10.9 o posterior, y parece que ya no está disponible en general.

Puedes probar opensnoop , una utilidad de línea de comandos que muestra los archivos a los que se accede en tiempo real. Su invocación más simple es:

$ sudo opensnoop

que le dará una lista actualizada de todos los archivos a los que se accede en el sistema. Si sospechas de una aplicación en particular, puedes filtrar su salida para mostrar solo lo que está haciendo esa aplicación:

$ sudo opensnoop -n Word

(IIRC hace una coincidencia de nombres parcial pero distingue entre mayúsculas y minúsculas, por lo que "Word" coincidirá con "Word", "MS Word", "Microsoft Word", etc. pero no con "word".)

O puede usarlo para ver qué está accediendo a un archivo en particular (solo en el ejemplo, no tengo idea si este es un archivo de preferencias de MS Word real):

$ sudo opensnoop -f /Library/Preferences/com.microsoft.msword

Para otras opciones, vea la página del manual.

    
respondido por el calum_b 01.07.2016 - 12:14
1

Puede usar fs_usage para ver todas las llamadas del sistema relacionadas con las actividades del sistema de archivos. La salida es bastante grande, por lo que probablemente deba redirigirla a un archivo

  1. Ejecutar sudo fs_usage > fs.out en la Terminal
  2. Inicie Word y espere a que la unidad externa gire
  3. Cambia a Terminal, presiona Ctrl-C y mira fs.out

También puede limitar la salida a ciertos procesos, consulte la página del manual para obtener más información al respecto.

    
respondido por el nohillside 01.07.2016 - 11:59

Lea otras preguntas en las etiquetas