OS X: Kann ich nachverfolgen, auf welche Dateien auf einer Festplatte zugegriffen wird?

0

Ich habe mehrere externe Festplatten. Es handelt sich um Consumer-Laufwerke, die bei Nichtbenutzung automatisch in den Ruhezustand versetzt werden. Ich kann (und will) sie nicht rund um die Uhr ausführen. Ich verwende sie ausschließlich zur Sicherung und Langzeitspeicherung.

Sehr oft verwende ich eine irrelevante Funktion eines Programms (wie "Rückgängig" in Microsoft Word für ein Dokument, das sich auf dem Hauptlaufwerk befindet) - die Anwendung friert ein und es wird eine externe Festplatte hochgefahren. (Oder jedes einzelne Laufwerk dreht sich einzeln nacheinander.) Das Programm friert dann auf. Das Programm scheint nicht gestört zu sein, wenn ich die Laufwerke aushänge. das hört einfach auf.

Und ich frage mich: Was um alles in der Welt sucht es? So kann ich herausfinden, wie ich diesen Ärger beenden kann. Wenn Sie beispielsweise auf Schriften tippen, die sich auf dem externen Laufwerk befinden, kann ich sicherstellen, dass Sie in ZIP-Dateien nicht verfügbar sind.

Meine Frage lautet: Wie kann ich ein dauerhaftes Protokoll der Dateizugriffe von Anwendungen erstellen? Ich habe versucht mit, lsof | grep /Volumes/aber es ist nur ein Schnappschuss von derzeit geöffneten Dateien; Es scheint immer den Moment zu verpassen, in dem diese App diese Datei geöffnet hat.


Ich habe den fs_usage-Ansatz ausprobiert und habe Ausbrüche dieser Nachricht erhalten: fs-usage: buffer overrun, events generated too quickly: 123456 Aber irgendwann tauchte Folgendes auf:

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

Dies geschah, als ich eine Excel-Tabelle schloss. Das ist eine Notizblockdiskette, und dieses Verzeichnis wurde vor Jahren gelöscht. Die Tabelle war eine neue Datei, die nichts mit diesem Speicherort zu tun hatte.

Das Durchsuchen des Laufwerks nach der Textzeichenfolge RSreorgergab nur 2 Dateien, beide ~/Library/Preferences/com.microsoft.office.plist, eine mit Kauderwelsch am Ende (temporäre Datei?). Die Websuche enthüllt, dass Microsoft meine Lizenzschlüssel dort speichert, aber der Textscan enthüllt Hunderte anderer nutzloser und falscher Verzeichnisse. Was in aller Welt macht Microsoft?

Und anscheinend unterstützt diese Antwort das vollständige Löschen der Datei .

Harper
quelle

Antworten:

2

Früher gab es eine nette kostenlose grafische App, die dazu aufgerufen wurde fseventer, aber in 10.9 oder höher funktionierte sie nicht wirklich und scheint nicht mehr allgemein verfügbar zu sein.

Versuchen Sie es opensnoopmit einem Befehlszeilenprogramm, das den Zugriff auf Dateien in Echtzeit anzeigt. Der einfachste Aufruf ist:

$ sudo opensnoop

Damit erhalten Sie eine Liste aller Dateien, auf die auf dem System zugegriffen wird. Wenn Sie eine bestimmte Anwendung vermuten, können Sie deren Ausgabe filtern, um nur anzuzeigen, was diese Anwendung tut:

$ sudo opensnoop -n Word

(Beim IIRC wird ein teilweiser, jedoch zwischen Groß- und Kleinschreibung unterschiedener Namensvergleich durchgeführt, sodass "Word" mit "Word", "MS Word", "Microsoft Word" usw., jedoch nicht mit "Word" übereinstimmt.)

Oder Sie können es verwenden, um zu sehen, was auf eine bestimmte Datei zugreift (nur als Beispiel, ich habe keine Ahnung, ob es sich um eine echte MS Word-Einstellungsdatei handelt):

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

Weitere Optionen finden Sie auf der Manpage.

calum_b
quelle
1

Mit können fs_usageSie alle Systemaufrufe anzeigen, die sich auf Dateisystemaktivitäten beziehen. Die Ausgabe ist ziemlich groß, daher müssen Sie sie wahrscheinlich in eine Datei umleiten

  1. Führen Sie sudo fs_usage > fs.outim Terminal
  2. Starten Sie Word und warten Sie, bis das externe Laufwerk hochgefahren ist
  3. Wechseln Sie zum Terminal, drücken Sie Ctrl-Cund schauen Sie durchfs.out

Sie können die Ausgabe auch auf bestimmte Prozesse beschränken. Einzelheiten dazu finden Sie auf der Manpage.

nohillside
quelle