Es gibt keinen einzigen Befehl, um einen perfekt formatierten "Bericht" von Benutzerquoten zu Home -Verzeichnissen unter Linux zu generieren. Der Ansatz hängt davon ab, welche Informationen Sie in Ihrem Bericht benötigen und wie Sie ihn formatieren möchten. Hier sind einige Methoden, in denen Standard -Linux -Befehle kombiniert werden:
Methode 1:Verwenden von `quota` und aw awk` (für einen grundlegenden Bericht)
Diese Methode funktioniert, wenn in Ihrem System Quoten aktiviert sind. Es zeigt die Nutzung und Grenzen für jeden Benutzer an.
`` `bash
quote -v | awk '{print $ 1, $ 2, $ 3, $ 4}'
`` `
* `quota -v`:Zeigt ausführliche Quoteninformationen für den aktuellen Benutzer an. Um Informationen für alle Benutzer anzuzeigen, verwenden Sie `sudo quoten -v` (erfordert Root -Berechtigungen).
* `awk '{drucken $ 1, $ 2, $ 3, $ 4}'`:Dies extrahiert den Benutzernamen, Gebrauchsraum, Soft Limit und Hard Limit. Passen Sie die Feldnummern an, wenn sich Ihre "Quota` -Ausgabe" unterscheidet (finden Sie auf der Seite "Quota" -Man für Details).
Methode 2:Verwenden von `find`,` du` und aw awk` (für einen detaillierteren Bericht)
Diese Methode ist flexibler und ermöglicht es Ihnen, andere Details einzugeben, aber es wird nicht * Quotengrenzen angezeigt, sondern nur Platz für den Gebrauch. Es erfordert Root -Privilegien.
`` `bash
FIND /HOME -TYPE D -User "$ (Whoami)" -printf " %U %s %p \ n" | awk '{sum [$ 1]+=$ 2} Ende {für (Benutzer in sum) drucken Benutzer, sum [Benutzer]}'
`` `
oder für alle Benutzer:
`` `bash
Finden Sie /home -typ d -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} Ende {für (Benutzer in sum) drucken Benutzer, sum [Benutzer]}'
`` `
* `find /home -typ d -User" $ (whoami) "-printf"%u%s%p \ n "":Findet alle Hausverzeichnisse, druckt den Benutzernamen ("%u"), die Größe in Bytes ("%s" und den Pfad ("%p"). Ersetzen Sie `$ (whoami)` durch `-User alle ', um alle Benutzer aufzulisten; Dies erfordert Root -Privilegien.
* `awk '{sum [$ 1]+=$ 2} Ende {für (Benutzer in Summe) Drucken Benutzer, sum [Benutzer]}'`:Dies setzt die Größen für jeden Benutzer und druckt den Benutzer und deren Gesamtdiskuse.
Methode 3:Kombination mit `sort` und` numfmt` für einen formatierten Bericht
Wir können die Ausgabe von Methode 2 für eine bessere Lesbarkeit verbessern:
`` `bash
Finden Sie /home -typ d -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} end {für (Benutzer in sum) drucken Benutzer, sum [Benutzer]}' | sortieren -k2,2nr | Numfmt -to =IEC --Suffix =b
`` `
* `Sortieren -k2,2nr`:Sortiert die Ausgabe numerisch in umgekehrter Reihenfolge (größte Verwendung zuerst) basierend auf der zweiten Spalte (Größe).
* `numfmt -to =iec --Suffix =b`:formatiert die Zahlen mit IEC -Einheiten (KB, MB, GB usw.) und fügt ein" B "-Suffix für Klarheit hinzu.
Wichtige Überlegungen:
* Root -Privilegien: Um Informationen über alle Benutzer zu erhalten, müssen Sie diese Befehle mit `sudo` ausführen.
* Quota aktiviert: Methoden, die `quota` verwenden, funktionieren nur, wenn Benutzerquoten in Ihrem System aktiviert sind. Sie können dies mit `repquota -a` (braucht Wurzel) überprüfen.
* Dateisystem: Diese Befehle gehen davon aus, dass Ihre Heimverzeichnisse unter "/home" stehen. Wenn Ihr System einen anderen Standort verwendet, passen Sie den Befehl "find" entsprechend an.
* Fehlerbehandlung: Die Skripte lieferten keine robuste Fehlerbehandlung. Für den Produktionsgebrauch möchten Sie Schecks für Fehler hinzufügen (z. B. "Find" fehlgeschlagen, analysieren).
Denken Sie daran, diese Befehle anhand Ihrer spezifischen Anforderungen und der Ausgabe der Befehle auf Ihrem System anzupassen. Erwägen Sie, ein ausgefeilteres Skript mit einer Skriptsprache wie Python oder Bash für erweiterte Berichtsanforderungen zu schreiben. Dies könnte die Datenbankintegration beinhalten, um Quoteninformationen regelmäßig zu speichern und zu abfragen.