Registri di trasferimento file semplici

2

Questa può essere una domanda Unix generale piuttosto che una domanda OS X.

Desidero registrare i trasferimenti di file generali su OS X, sia che si tratti da e verso lo stesso sistema o verso un altro sistema, ma per semplificare l'assunzione presumi che sia tutto interno a un computer e un file system.

Voglio semplicemente essere in grado di eseguire il comando mv più volte, quindi tornare indietro attraverso un file di log e vedere cosa è stato spostato e dove è stato spostato in un secondo momento. L'avvertenza è che voglio anche registrare i trasferimenti di file avviati dalla GUI durante il trascinamento di cartelle e file nello stesso file di registro.

(Se fosse una directory, mostrerebbe anche il contenuto di ciò che è stato spostato in quella directory.)

Un esempio potrebbero essere questi file creati e spostati nel terminale e nella 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

Il log mostrerebbe quindi la cronologia per me:

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

Se fosse davvero di fantasia, potrebbe mostrarmi anche il codice di ritorno del trasferimento dei file.

    
posta DogEatDog 04.04.2012 - 17:09
fonte

1 risposta

1

Dai un'occhiata a iosnoop o eventualmente fs_usage . Anche se ciò che desideri non è facile da realizzare senza un maggiore filtraggio, perché "trasferimenti di file" possono essere molte cose diverse a livello di syscall:

  • mv sullo stesso punto di montaggio sposterà un file
  • mv su punti di montaggio creerà un nuovo file nella destinazione e scollegherà l'originale
  • Altri strumenti faranno cose ancora più complesse, ad esempio se stai scaricando un file con un browser, creerà un file vuoto e poi lo aggiungerà nel tempo.

Entrambi gli strumenti si basano su DTrace , che è un framework di tracciamento molto potente e può probabilmente essere copiato per filtrare la maggior parte di quello che vuoi, ma ci vorrà del lavoro. Esistono script di esempio in /usr/bin/*.d (ad esempio /usr/bin/iofile.d ) e la documentazione può essere trovata all'indirizzo Oracle (OS X DTrace è una porta della versione originale di Solaris).

    
risposta data 16.04.2012 - 16:09
fonte

Leggi altre domande sui tag