Ubuntu Ordnergrößen

  • Hallo Miteinander,


    ich benötige regelämßig die Speichergrößen aller Unterordner von /home, aktuell habe ich das ganz einfach gelöst:

    Code
    du -s /home/* > /ORDNER/info.txt

    Das führe ich einmal nachts aus und lasse die info.txt dann in eine Datanbank übertragen.


    Mittlerweile liegen so viele Ordner in dem Verzeichnis, dass das Script ewig braucht und vor allem schießt die CPU auf 100 % Auslastung.


    Hat jemand eine Idee wie ich das performanter machen könnte?


    Ich brauche nur von allen Unterordnern aus /home/ den Namen und die Größe.


    VG


    Fisi

  • Vielleicht hilft es schon ein anderes Tool zu nutzen. Ich verwende gerne `dua` (https://github.com/Byron/dua-cli). In meinem Home-Ordner mit ~1,7 Mio Dateien und Ordnern gibt sich folgendes Bild:


    Ansonsten gäbe es mit Btrfs (und vermutlich ZFS) die Möglichkeit mittels Subvolumes und offenen Quotas das ganze mitzuzählen. Allerdings nimmt man da natürlich alle Vor- und Nachteile des Dateisystems mit und ich erwähne das nur der Vollständigkeit halber.

  • Hat jemand eine Idee wie ich das performanter machen könnte?

    Wenn ich soetwas bauen müsste, würde ich per inotify mir Dateiänderungen anzeigen lassen und in einen Index in einer Datenbank aufnehmen.


    Leider findet sich bei Google unter inode index nicht wirklich was Brauchbares.

  • Geht es wirklich nur um die Home-Ordner der Benutzer, oder war das nur ein Beispiel? Dann würde ich einfach FS-Quotas aktivieren und die Ausgabe von "repquota" parsen. Oder dürfen die User auf der gleichen Partition auch noch woanders schreiben?


    Alternative Idee: Ein Dateisystem in einer Image-Datei, also mittels Loop-Device. Dann kann man die Auslastung jederzeit mit "df" in wenigen Millisekunden abrufen und muss nicht gleich alles auf ZFS/Btrfs/o.ä. umstellen. :)


    Ich verwende so eine Lösung für ein paar Ordner, in denen mehrere Millionen kleine Dateien liegen. Dadurch kann ich auch die Filesystem-Parameter für die jeweiligen Ordner entsprechend tunen. In meinem Fall ist es ein stinknormales ext4 in *.img Dateien, die über die fstab jeweils exklusiv für einen bestimmten User eingebunden werden. Der Vorteil davon ist, dass ich diese Ordner unabhängig vom eigentlichen Speichersystem optimieren und auch leichter umziehen kann. Der Overhead von zwei Dateisystemen ist bei mir zu vernachlässigen.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Gefällt mir 4