Vorgeschichte: Ich hab hier ein korruptes btrfs-Dateisystem, von dem ich Daten derzeit auf Band (LTO) sichere. Dabei will ich noch rausfinden, welche Daten kaputt/korrupt sind, um die kaputten Dateien später aus einem anderen (Cloud-)Backup wiederherstellen zu können. Die Infos dafür finde ich in dmesg und im syslog, dort werden mir beim Lesen kaputter Dateien die entsprechenden Inodes angezeigt, worüber ich wiederum die entsprechenden Dateien identifizieren kann. Nun hab ich gerade wieder 1,5TB auf ein Band kopiert - leider war allerdings die Systempartition voll, so dass die Logfiles nicht geschrieben werden konnten. Ich hab also eine Kopie auf Band, in der alle heilen und ggf. auch kaputten Dateien sind, nur weiß ich nicht, welche Dateien kaputt sind.
Dafür müsste ich also nun alle Dateien bzw. den ganzen betroffenen Ordner auf den HDDs nochmal auslesen, damit ich die Fehler im Log wieder bekomme - nur wo hin schiebe ich die eingelesenen Daten? Habe probiert, die Dateien per "cp -r /ordner /dev/null" in /dev/null zu kopieren. Aber /dev/null schluckt ausschließlich einzelne Dateien, keine gesamte Ordnerstruktur. Aktuell probiere ich es, mit "grep -r /ordner > /dev/null" - was zwar zu funktionieren scheint (bekomme Einträge im syslog über korrupte Daten), nur läuft das ganze seit 4 Stunden mit >200MB/s, so dass inzwischen ~3TB gelesen sein müssten, obwohl der Ordner nur 1,5TB groß ist... Keine Ahnung, was grep da macht...
Frage: Gibt es noch eine andere Möglichkeit, eine Ordnerstruktur einmal komplett einzulesen und z.B. in /dev/null zu schieben? Wohin damit ist mir eigentlich egal
Hauptsache jede Datei wird einmal komplett gelesen bzw. es versucht.
//EDIT: Zumindest mein Problem, warum grep wild wird, habe ich glaube ich gelöst ^^ "lsof" hat mir gerade verraten, dass mein grep sich irgendwo rumtreibt, wo es sich gar nicht rumtreiben sollte... Klar - mit meiner Befehlszeile durchsucht grep natürlich nicht den "/ordner", sondern nutzt das Ding als Pattern und sucht im aktuellen Verzeichnis nach dem Begriff /ordner in allen Dateien. Klar, dass er dann viel zu viel liest
Damit ist mein Problem - denke ich - eigentlich schon gelöscht. Falls noch jemand eine Idee hat, wie man sowas geschickter lösen könnte, lerne ich aber auch immer wieder gern dazu!