Suche: Datenbank von Filenamen und Hash für mehrere Hosts

jal2

Active member
Themenstarter
Registriert
7 Sep. 2010
Beiträge
3.746
Hi,

gibt es für Linux ein Programm, das die Files mehrerer Rechner in einer Datenbank o.ä. erfassen kann
(ähnlich zu locate, aber zusätzlich mit einem Hash [MD5] und dem Hostnamen) und dann Abfragen wie
  • Auf welchen Rechnern befindet sich xyz.pdf?
  • Welche Files sind mehrfach vorhanden (anhand des Hashs)?
  • Welche Subdirs sind mehrfach vorhanden?
erlaubt?

Da nicht immer alle Rechner zugleich im Netzwerk erreichbar sind, sollte die Datenbank möglichst auf einem USB-Stick liegen. Zur periodischen Erfassung dann: Rechner starten, Stick rein und Programm starten. Analog die Abfrage: USB-Stick in einen beliebigen Rechner und Programm im Query-Mode starten. Kommandozeile würde mir reichen.

Gruss,
jal2
 
gibt es für Linux ein Programm, das die Files mehrerer Rechner in einer Datenbank o.ä. erfassen kann

Ob es ein dediziertes Programm für dieses Szenario gibt, könnte ich aus dem Stegreif nicht sagen. Folgende (Hand gestrickte) Möglichkeiten fallen mir spontan ein:

  • Der Collector mount'et die Peers (zeitweise) via NFS/CIFS/AFP und generiert die Hashes aus deren jeweiligem fully-qualified path name (hostname + local path). Ggf. können md5sums der Dateiinhalte generiert werden, um im Nachhinein verteilte Duplikate zu erkennen.
  • Statt zu mounten, hält der Collector ein eigenes lokales Repository (z. B. via rsync) vor, was obendrein die Funktion einer Level-0-Datensicherung erfüllen würde. Letztlich wird wie beim ersten Punkt verfahren.
  • Der Collector delegiert die Indizierung an die einzelnen File Server und speichert deren Ergebnisse lokal, womit das typische Szenario eines Map/Reduce gegeben wäre.

Da nicht immer alle Rechner zugleich im Netzwerk erreichbar sind, sollte die Datenbank möglichst auf einem USB-Stick liegen.

Wo und wie der Collector speichert, wäre völlig offen - also warum nicht auch in einem CDB-hash auf einem USB-Stick.
 
Ist wahrscheinlich nicht die gewünschte Antwort, aber für mich ist das ein klassischer perl Job, insbesondere wegen der benötigten flexiblen Ablage der DB auf dem Stick (als DBM file?).

Ich schätze, dass sich das in ~100 Zeilen Code realisieren ließe. Das Skript fängt so an:

Code:
#!perl
use strict;
use warnings;
use File::Find;
use Digest::MD5 qw(md5_hex);
use DBI;

Die restlichen 94 Zeilen habe ich aber nicht im Kopf. Wenn man bereits Code hat, kann man gerne bei perlmonks.org fragen. Dort ist man in etwa so schnell wie hier im Thinkpad-Forum.
 
  • ok1.de
  • thinkstore24.de
  • ok2.de - Notebook Computer Server
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben