2 votos

Registros de transferencia de archivos simples

Esta puede ser una pregunta general de Unix en lugar de una pregunta de OS X.

Quiero registrar las transferencias generales de archivos en OS X, ya sea desde y hacia el mismo sistema o hacia otro sistema, pero para mantenerlo simple asuma que todo esto es interno de una computadora y un sistema de archivos.

Simplemente quiero ser capaz de ejecutar el comando mv varias veces, y luego volver a través de un archivo de registro y ver lo que fue movido y donde fue movido en un momento posterior. La advertencia es que también quiero registrar las transferencias de archivos iniciadas por la interfaz gráfica de usuario cuando se arrastran carpetas y archivos al mismo archivo de registro.

(Si fuera un directorio, también mostraría el contenido de lo que se movió en ese directorio.)

Un ejemplo podría ser estos archivos creados y movidos en la terminal y en el GUI

     1pm: $ vi testfile1.txt
     2pm: $ mv testfile1.txt MyMovedFile.txt
     2:30pm – GUI file moved  ~/myTestFile.txt ~/Documents/myTestFile.txt
     3pm: $ mv MyMovedFile.txt MyNewFile.txt

El registro mostraría entonces la historia para mí:

     2pm: testfile1.txt MyMovedFile.txt
     2:30pm ~/myTestFile.txt ~/Documents/myTestFile.txt
     3pm: MyMovedFile.txt MyNewFile.txt

Si era realmente elegante, puede que también me muestre el código de retorno de la transferencia de archivos.

1voto

Jasmine D Puntos 1

Echa un vistazo a iosnoop o posiblemente fs_usage . Aunque lo que quieres no es fácil de lograr sin un gran filtrado, porque las "transferencias de archivos" pueden ser un montón de cosas diferentes a nivel de llamada al sistema:

  • mv en el mismo punto de montaje moverá un archivo
  • mv a través de los puntos de montaje creará un nuevo archivo en el destino y desvinculará el original
  • Otras herramientas harán cosas aún más complejas, por ejemplo, si descargas un archivo con un navegador, éste creará un archivo vacío y luego lo añadirá con el tiempo.

Las dos herramientas anteriores se basan en DTrace que es un marco de trabajo de rastreo muy poderoso y probablemente puede ser programado para filtrar la mayoría de lo que quieres, pero tomará algo de trabajo. Hay ejemplos scripts en /usr/bin/*.d (por ejemplo /usr/bin/iofile.d ) y la documentación puede encontrarse en Oracle (OS X DTrace es un puerto de la versión original de Solaris).

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