Dateisystem überwachen.
-
Hallo Leute.
Ist es möglich das Dateisystem unter Linux/Windows zu überwachen? Sprich, jede Aktion (z.B. Datei erstellen/löschen, Verzeichnis erstellen/löschen) soll registriert werden.
Danke schon mal im Voraus.
-
Ich glaub FileMon kann sowas.
EDIT: http://www.sysinternals.com/ntw2k/source/filemon.shtml
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Für mehrere Unix Systeme gibt es den FAM (File Alternation Monitor). Unter Linux verwendet dieser soweit ich weiss dnotify. KDE hat eine Abstraktion dieser Sachen, so dass man dies unter KDE sehr einfach verwenden kann.
-
Sorry, meine Schuld.
Ich meinte natürlich welche bibliotheken ich benötige, damit ich diese Überwachung im eigenen Programm implementieren kann?
Bei dnotify ist die Einschränkung da, dass ich ein Verzeichnis oder eine Datei angeben muss, die überwacht werden soll. Was ich brauche ist eine Überwachung des gesamten Dateisystems.
-
Warum machst Du das nicht einfach direkt über das jeweilige Dateisystem?
Über ein zusätzliches Programm wäre das unschön und unsinnig.
-
Was heisst das?
Ich schreibe gerade einen Dateiexplorer. Dieser sollte eben auf jede Änderung im Dateisystem reagieren. Und es reicht nicht einen Überwacher auf ein bestimmtes Verzeichnis oder auf eine Datei zu setzen. Es _muss_ das gesamte Dateisystem überwacht werden.
Am besten wäre es natürlich BS unabhängig zu lösen. Übrigens verwende ich Qt4.
-
NSaibot schrieb:
Was heisst das?
Ich schreibe gerade einen Dateiexplorer. Dieser sollte eben auf jede Änderung im Dateisystem reagieren. Und es reicht nicht einen Überwacher auf ein bestimmtes Verzeichnis oder auf eine Datei zu setzen. Es _muss_ das gesamte Dateisystem überwacht werden.
Am besten wäre es natürlich BS unabhängig zu lösen. Übrigens verwende ich Qt4.
Dein Dateiexplorer zeigt aber nicht alle Verzeichnisse gleichzeitig an, oder?
-
NSaibot schrieb:
Was heisst das?
Ich schreibe gerade einen Dateiexplorer. Dieser sollte eben auf jede Änderung im Dateisystem reagieren. Und es reicht nicht einen Überwacher auf ein bestimmtes Verzeichnis oder auf eine Datei zu setzen. Es _muss_ das gesamte Dateisystem überwacht werden.
Am besten wäre es natürlich BS unabhängig zu lösen. Übrigens verwende ich Qt4.
-
Prof84 schrieb:
Was hat LDAP hier zu suchen?
-
Ponto schrieb:
Prof84 schrieb:
Was hat LDAP hier zu suchen?
http://www.c-plusplus.net/forum/viewtopic.php?t=49135&highlight=ldap
-
wenn du doch eh Qt benutzt, nimm doch QDir. dann haste sogar ne betriebssystemübergreifende lösung.
-
Ponto schrieb:
Dein Dateiexplorer zeigt aber nicht alle Verzeichnisse gleichzeitig an, oder?
Er arbeitet nach einem Filter Prinzip. Also z.B. "zeige mir alle Dateien an mit dem Muster [*.cpp, *.h, *.d, *.java]", sowas in der Art. Du siehst, dass diese Dateien in verschiedenen Ordnern liegen können.
Es könnte z.B. auch eine neue Datei _irgendwo_ erstellt werden, die auch in diesen Filter passt, darauf müsste dann reagiert werden und diese neue Datei auch mit in die Anzeige aufgenommen werden.
-
Prof84 schrieb:
http://www.c-plusplus.net/forum/viewtopic.php?t=49135&highlight=ldap
Sorry, konnte da nichts brauchbares finden. Wie gesagt ich kann mich nicht auf einen bestimmten Ordner konzentrieren. Ich muss das gesamte Dateisystem erfassen und jede Änderung an diesem wiederspiegeln.
-
Das ist designtechnischer Schwachsinn.
-
Du weisst ja, Meinungen sind wie A****löcher, jeder hat eine. Ich habe keine Umfrage gestartet, sondern eine Frage gestellt ob dies möglich wäre oder nicht.
Eine unproffessionele Antwort habe ich von einem Moderator nicht erwartet.
-
NSaibot schrieb:
Ich habe keine Umfrage gestartet, sondern eine Frage gestellt ob dies möglich wäre oder nicht.
Klar wäre das möglich; der FAM wurde schon genannt und dass man sowas wie Du das machen möchtest besser auf FS-Ebene löst, habe ich auch gepostet.
Eine unproffessionele Antwort habe ich von einem Moderator nicht erwartet.
Wenn Du nur für irgendeinen File-Selection-Dialog das ganze Dateisystem permanent auf Änderungen überwachen möchtest, dann ist das einfach Schwachsinn, insofern war meine Antwort vielleicht nicht das, was Du hören wolltest, entspricht aber durchaus der Wahrheit.
-
Hab mir gerade dieses FAM angeschaut. Es ist genau das wonach ich suche, dabei muss ich mich aber auch darauf verlassen, dass die anderen (sollte es wirklich jemand ausser mir benutzen) dieses Programm auch laufen haben.
/Edit: zu früh? FAM berichtet nur über die Änderungen von Dateien, die ich überwacht haben möchte, richtig? Kann ich auch "/" angeben, damit FAM das gesamte FS überwacht?
Das Prinzip meines Explorers habe ich ja schon beschrieben (hoffe verständlich). Wie würdest Du (nman) oder auch Ihr (alle anderen) das lösen?
Welche Lösung meinst Du, wenn Du von FS Ebene sprichst? Es ist mir völlig egal wie es gelöst wird, Hauptsache es wird gelöst.
-
NSaibot schrieb:
Das Prinzip meines Explorers habe ich ja schon beschrieben (hoffe verständlich). Wie würdest Du (nman) oder auch Ihr (alle anderen) das lösen?
Hm, ich weiß nicht, irgendwie kommt mir das Konzept einfach seltsam vor, warum will ich mit einem Fileexplorer ständig alle Dateien mit einer bestimmten Endung auf meinem gesamten Rechner sehen?
Welche Lösung meinst Du, wenn Du von FS Ebene sprichst?
Ich hätte an ein simples Logging von Seiten des FS gedacht, so wie das von vielen Dateisystemen ohnehin schon implementiert wird.
Aber da dachte ich noch, dass Du etwas anderes machen möchtest, als diesen File-Explorer.
-
Das schöne an dem Konzept ist, dass Du als Muster auch ein Verzeichnis angeben kannst, also (zeige mir alle Dateien im Verzeichnis "xyz" an).
Wieso soll ich denn ständig durch die Ordner schleichen um alle meine Bilder/Musikdateien/Officedateien anschauen zu können?
Wenn Du mit einer Datenbank gearbeitet hast und Views kennst, dann weisst Du was ich meine