[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Suche Tool: Aenderungen im Unterverzeichnis protokollieren
[Thread Prev] | [Thread Next]
- Subject: Suche Tool: Aenderungen im Unterverzeichnis protokollieren
- From: Raphael Becker <rabe@xxxxxxxxx>
- Date: Sun, 19 Jul 2009 12:50:02 +0200
- To: uugrn@xxxxxxxxxxxxxxx
Hallo zusammen, ich bin auf der Suche nach einem Tool, mit dem ich einen Vorher-Nachher-Diff auf einem Verzeichnisbaum anwenden kann. Da das ganze "in place" sein soll, d.h. also zum Zeitpunkt des Vergleichs nicht beide Versionen parallel existieren (jaja, mit ZFS Snapshots *koennte* man auch das), muss der jeweilige Bestand festgehalten werden, also eine Art Katalog-Snapshot. Durch Vergleich von 2 (oder mehr) Staenden sollen Aussagen getroffen werden koennen. Mich interessieren primaer folgende Aussagen: * Existenz: - Datei/Verzeichnis geloescht - Datei/Verzeichnis dazugekommen - Datei/Verzeichnis behalten * Metadaten - Dateigroesse - Timestamp - ggf. Checksumme Nicht notwendigerweise aber nice to have: * Aenderungen Bestandsdateien - Bestands-Datei: Verschiebungen (Inodes) - Hardlinks - Owner, Permissions - Attribute, ACLs - Checksummen Ein "Aenderungsreport" soll in verschiedenen Detailsgraden auf diesen Daten arbeiten koennen oder bestimmte Fragestellungen beantworten, etwa: * Gibt es neue Dateien? (ja/nein) - welche? * Wurden Dateien geloescht? (ja/nein) - welche? * Wurden Dateien umbenannt/verschoben (ja/nein) - welche? (etwa durch Auswertung von inodes oder checksummen) * Wurden Dateien kopiert? (ja/nein) - welche? (Neue Dateien, die eine Checksumme einer Bestandsdatei haben) * Wurden Dateien modifiziert? - Vergleich von Checksummen auf Basis von Inode/Dateinamen * Timestamps Der Aenderungsreport soll auf beliebige Staende anwendbar sein, also auch dann sinnvolle Aussagen treffen, wenn man in der Zeit rueckwaerts vergleicht oder Staende dazwischen ueberspringt. Nice to have: Fuer einen Dateiname oder Inode eine Historie basierend auf vielen "Snapshots" erstellen. Mir ist klar, dass das Einsammeln dieser Daten auf Vorrat verschieden "teuer" sein wird, d.h. etwa beim Protokollieren von Checksummen. Die Aufzeichnung sollte in Dateien erfolgen, wobei ich nicht notwendigerweise Wert darauf lege, dass es flache ASCII-Dateien sein muessen. bdb, sqlite, etc waeren auch ok. Das Ausgabeformat der "Reports" sollte in irgendeiner Form tabellarisch sein, da ich diese Ergebnisse nicht einfach nur darstellen, sondern weiter verarbeiten will. Beispiele: * /usr/{src,ports} tracken -> Neuigkeiten vor/nach cvsup ermitteln -> Aenderungen ueber defeinierte Zeitraeume ermitteln * Bei Installation von Software (Ports, Packages): -> Welche Dateien sind aus dem Package rausgefallen? -> Wurden Dateien geaendert? -> funktioniert "make clean"? * Backup ... -> Vorschau: Daten, die sich geaendert haben -> voraussichtliches Backupvolumen (Summe aller Dateigroessen) -> Vergleich soll/ist (Volumen) -> Wachsumsentwicklung basierend auf letzte 1/7/30/100 Tage -> Optimierung von Backup-Perioden, Zeitpunkten, Methoden -> fuer bestimmte Subtrees -> Undo-Funktion: Wiederherstellen eines alten Standes durch selektives Restoren von Dateien aus dem Backup. * Sicherheitskritische Aenderungen erkennen etwa: Snapshots bei Boot und Shutdown -> Wurden zwischen Shutdown und Boot Dateien veraendert? (Hat jemand von CD gebootet und mir was untergeschoben?) (wobei man die Snapshots dann natuerlich entsprechend auch gegen Manipulation sichern muesste) * Was tut $BLACKBOX auf der Platte? * locate einer Datei zu verschiedenen Zeitpunkten -> in welchem Backup finde ich die letzte Version vor dem 1.4.? Im Prinzip eine Art aufgebohrtes locate.updatedb(8) / locate(1). Anwendung: 1) Snapshot --> [DBnn] (wie locate.updatedb(8), als cronjob) 2) Report <-- [DBnn] (wie locate(1)) 3) Report1 <-- [DBnn][DBmm] 4) Report2 <-- [DBnn][DBmm] 5) Report3 <-- [DBxx][DBxy][DBxz][...][DBzz] (Dateigeschichte ... ) Kennt jemand was in dieser Richtung? Wenn es sowas noch nicht gibt, wieso nicht? ;-) Gruss Raphael -- Raphael Becker <rabe@xxxxxxxxx> http://rabe.uugrn.org/ https://blogs.uugrn.org/freebsdtipps/ GnuPG: E7B2 1D66 3AF2 EDC7 9828 6D7A 9CDA 3E7B 10CA 9F2D .........|.........|.........|.........|.........|.........|.........|.. -- http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/