Wie lässt sich die maximale Größe eines Ordners aufzeichnen?

Wie lässt sich die maximale Größe eines Ordners aufzeichnen?

Pakete werden auf einem Testsystem in entpackt und kompiliert /tmp/test.

Ich mussHolen Sie sich die maximale Größe, die das Verzeichnis zu einem beliebigen Zeitpunkt hattewährend all dieser Schritte.

Im Moment helfe ich mir selbst, indem ich die Größe aufzeichne mit

du -sch /tmp/test >> /tmp/size.txt 

in einer Schleife. Aber das ist ein sehr schmutziger Workaround und nicht präzise. Es könnte sein, dass der Computer sehr beschäftigt ist /tmp/testund dudie Spitzengröße verpasst. Gibt es eine elegante Lösung?

Die verfügbaren Dateisysteme sind ext oder btrfs, falls das hilft.

Ein Leser fragte nachAnwendungsbeispiele:

  • Wenn ich Pakete für Gentoo Linux vorbereite, muss ich wissen, wie viel Speicherplatz während der Kompilierung benötigt wird. Bei einigen Paketen wie Firefox, Boost oder LibreOffice ist es sehr wichtig, dass das Paket überprüft, ob genügend freier Speicherplatz verfügbar ist.

  • Ich habe Skripte geschrieben, die viele temporäre Dateien erstellen. Es wäre interessant, die Ordnergröße zu überwachen.

Aktualisieren:Inzwischen habe ich etwas gefunden sysdig, das für diese Aufgabe vielversprechend aussieht, aber ich habe noch keine Ordnergröße.

Antwort1

Eine Möglichkeit wäre, Dateisystemereignisse zu überwachen und Protokollierungsbefehle für die Dateierstellung und -löschung auszuführen. Es gibt einige Tools, die diesen Ansatz wahrscheinlich erleichtern würden, wie zum Beispielinoffiziell,fswatch, oder derLinux-Audit-Framework. Sie können entweder versuchen, den gesamten Speicherplatz nach jedem Ereignis zu protokollieren oder nur die Änderung des Speicherplatzes protokollieren und dann die Protokolle verwenden, um die maximale Größe zu berechnen. Siehe beispielsweise den folgenden SuperUser-Beitrag:

Ein anderer Ansatz kommt aus dem folgenden Beitrag:

Dort wird vorgeschlagen, das betreffende Verzeichnis auf einer eigenen Partition zu mounten und dann auszuführeniostatauf dieser Partition. Dadurch sollten Sie E/A-Ereignisse kontinuierlich in diesem Verzeichnis protokollieren können.

Weitere Informationen zur Überwachung der Festplatten-E/A finden Sie im folgenden Beitrag:

Antwort2

Planen Sie für jede Minute ein Skript ein

*/1 *. *. *. * script path

Das Skript sollte wie folgt aussehen

#!/bin/bash
du -sch /tmp/|sed -n '1p' >>outputfile

Sortieren Sie es nach einiger Zeit und holen Sie sich die größte Größe.

verwandte Informationen