datei änderungen protoklieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ZzLeCzZ
Beiträge: 245
Registriert: 15.12.2003 19:34:00

datei änderungen protoklieren

Beitrag von ZzLeCzZ » 29.06.2004 22:41:08

hallo, kann ich das ändern/erstellen/löschen einer Datei als auslöser benutzten um ein programm zu starten? und wie mach ich das?

Also das problem ist folgendes: ich möchte die locate funktion ein wenig umändern so das immer wenn eine datei geändern/erstellen/gelöscht wird dies sofort in der Datenbank protokoliert wird.

ist das überhaupt sinvoll oder könnte dadurch das system beim schreiben auf die Festplatte deutlich langsamer werden?

EDIT: oder gibt es eine log datei des datei systems? es reicht ja auch aus die DB zu akktualisieren wenn locate aufgerufen wird

ernohl
Beiträge: 1248
Registriert: 04.07.2002 08:11:56
Wohnort: HL

Re: datei änderungen protoklieren

Beitrag von ernohl » 29.06.2004 22:55:22

ZzLeCzZ hat geschrieben:Also das problem ist folgendes: ich möchte die locate funktion ein wenig umändern so das immer wenn eine datei geändern/erstellen/gelöscht wird dies sofort in der Datenbank protokoliert wird.

ist das überhaupt sinvoll oder könnte dadurch das system beim schreiben auf die Festplatte deutlich langsamer werden?

EDIT: oder gibt es eine log datei des datei systems? es reicht ja auch aus die DB zu akktualisieren wenn locate aufgerufen wird
Kennst du find?
Wie groß/lahm sind deine Festplatten?
Oder hast du zu viel Zeit?

Mir käme jedenfalls so ein daemon nur ins System, wenn er den allerletzten nice-Wert hätte. Und schreiben würde ich so etwas schon gar nicht. Nicht mal, wenn es neben dem PC kein richtiges Leben mehr geben würde...
Gruß
ernohl

Benutzeravatar
domo
Beiträge: 268
Registriert: 11.07.2002 18:18:27

Beitrag von domo » 29.06.2004 23:00:43

Schau mal das Paket fam an.... Ich kenne es nicht genau, aber mindestens die Paketbeschreibung sagt, dass es sowas ist wie du suchst....

ZzLeCzZ
Beiträge: 245
Registriert: 15.12.2003 19:34:00

Beitrag von ZzLeCzZ » 29.06.2004 23:29:11

@domo: yo das hört sich ja schon ganz gut an werd mir das mal anschauen.

ps: kann man eigendlich auf das journal von den sogenanten journaling FS zugreifen? oder ist das jetzt schwachsinn?

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 01.07.2004 02:50:59

Um Deine eigenen Worte zu verwenden: "Das ist Schwachsinn" ;-). Du willst ja auch nicht in den PTEs und TLBs des Kernel herumspielen (virtuelles Speichermanagement), oder? Das Journal ist eine "interne Datenstruktur" des Kernels (bzw. des Dateisystems).

Wenn Du den FS Code debuggen willst: Bei ext3 kann man das Journal sehen, wenn man das Dateisystem als ext2 mountet. Es taucht dann als versteckte Datei ".journal" im TopLevel der Partition auf. Wenn die Partition sauber unmounted wurde, ist das Journal allerdings per Definition leer...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

ZzLeCzZ
Beiträge: 245
Registriert: 15.12.2003 19:34:00

Beitrag von ZzLeCzZ » 01.07.2004 13:10:47

hm schade
dabei wär es mir echt lieber die DB aus irgendeiner log zu akktualisieren...

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 01.07.2004 13:34:55

Für welches Szenario brauchst du den diese Funktionalität? Vielleicht ist ja sogar ein Versionsverwaltungsprogramm etwas, was dir weiterhelfen kann.

Subversion kann zum Beispiel, wenn man über Webdav zugreift, Autoversionierung, so dass der Benutzer gar nicht mitbekommt das er ein Versionierungstool benutz (er muss halt nur den Webdavordner als Netzlaufwerk irgendwie einbinden).

cu

ZzLeCzZ
Beiträge: 245
Registriert: 15.12.2003 19:34:00

Beitrag von ZzLeCzZ » 01.07.2004 14:14:38

Also das problem ist folgendes: ich möchte die locate funktion ein wenig umändern so das immer wenn eine datei geändern/erstellen/gelöscht wird dies sofort in der Datenbank protokoliert wird.
das ziel ist das man dateien zu jeder zeit blizschnell finden kann

so was soll auch im neuen macosx tiger sein...
ausprobieren kann man das auch mit dem betriebssystem "BeOS" http://bezip.de/app/306/ hier werden auch noch sehr gut die attribute der dateien ausgenutzt... z.b mails erhalten attribut read, unread, subject.... und nach dennen kann dann gesucht werden. zb alle mails mit attribute unread suchen und augenblick später hatt man alle ungelesenen mails, die auf der festplatte sind paratt!

was macht den so ein versionsverwaltungs programm?

edit: vieleciht sind die links hier besser: http://bezip.de/app/308/ http://bezip.de/app/1328/ http://www.yellowtab.com/

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 01.07.2004 14:24:55

ZzLeCzZ hat geschrieben: was macht den so ein versionsverwaltungs programm?
VCS werden meist bei der Entwicklung eingesetzt und erleichtern es in der Regel mehreren Programmieren an einem Projekt zu arbeiten. Es ist dort auch möglich den Verlauf einer Datei zu verfolgen, und welcher User wann welche Änderung gemacht hat.

Anscheinend ist es aber nicht für deinen Anwendungsfall sinnvoll zu benutzen, da du etwas komplett anderes zum Ziel hast. Hätt ja sein können. :lol:

cu

Benutzeravatar
minuseins
Beiträge: 123
Registriert: 21.05.2002 17:42:51
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von minuseins » 01.07.2004 14:51:57

Hi,

was du du brauchst, ist wahrscheinlich eher über den Umweg einer der IDS-Systeme zu realisieren.

z.B. samhain

Evtl. hilft dir auch folgendes weiter:

http://www.bangstate.com/changedfiles/

bzw.

http://sourceforge.net/projects/doxfs/ (Eigetlich mehr Dokumenten-Management)

Aber auch das ist im Prinzip Murks (Ausnahme das letzte). Ein natives, kostenloses, vielfach getestetes Datenbankbasierendes FS ist mir so nicht bekannt.

Es gibt zwar immer wieder Ansätze oder Hilfesmittel wie:

http://sourceforge.net/projects/pgfindfile/

http://sourceforge.net/projects/dbvfs/

LinFS (kein Bookmark gefunden)

Aber wirklich "fertig" werden diese nie, was ich nur zu gut kenne. FS ist schon Schwierig genug und dann auch noch in Verbindung mit einer DB. :/

Hab schon selbst Ansätze mit über VFS + postgres angefangen und wieder verworfen.

Vielleicht hilft dir dennoch der eine oder andere Link weiter.

da minus
He who work root can fell trees and knowledge is no substitute for experience.

Benutzeravatar
smoon
Beiträge: 248
Registriert: 07.05.2004 15:44:57
Kontaktdaten:

Beitrag von smoon » 01.07.2004 15:26:02

Eine andere Möglichkeit wäre das Directory Notification Feature vom Kernel. Allerdings kann man damit - wenn ich das richtig verstanden habe - nur bestimmte Verzeichnisse überwachen und bei einer Änderung innerhalb des Verzeichnisses (Datei wird gelöscht, erstellt, ...) kriegt dein Programm ein Signal und kann dann entsprechende Aktionen ausführen. Das Problem ist aber, dass man nicht mitbekommt welche Datei sich geändert hat. Man bekommt nur "gesagt" in welchem Verzeichnis sich was geändert hat. Also müsste man dann dieses Verzeichnis mit seinem Programm durchsuchen und die Datenbank aktualisieren. Das wird dann bei Verzeichnissen mit sehr vielen Dateien wieder langsam.

dnotify ist ein Programm, das dieses Kernel Feature benutzt.


*edit*

Vielleicht muss man das Rad auch garnicht neu Erfinden:
Beagle
Storage
smoon:#linuxger:Undernet

ZzLeCzZ
Beiträge: 245
Registriert: 15.12.2003 19:34:00

Beitrag von ZzLeCzZ » 22.08.2004 18:03:03

hab mal ein wenig mit dnotify und fam rum probiert.. aber das ist irgendwie nicht das richtige nach meinem Geschmack.
Wär es nicht möglich die nachricht das eine datei geändert, gelöscht wird... abzufangen?

Antworten