Det finns inget enda kommando för att generera en perfekt formaterad "rapport" av användarkvoter i hemkataloger i Linux. Tillvägagångssättet beror på vilken information du behöver i din rapport och hur du vill att den formateras. Här är några metoder som kombinerar standard Linux -kommandon:
Metod 1:Använda `quot` och` awk` (för en grundrapport)
Den här metoden fungerar om kvoter är aktiverade på ditt system. Det visar användning och gränser för varje användare.
`` `bash
kvot -v | awk '{print $ 1, $ 2, $ 3, $ 4}'
`` `
* `Quota -V`:Visar information om ordförlig kvot för den aktuella användaren. För att se information för alla användare använder du `sudo -kvot -v '(kräver rotprivilegier).
* `awk '{tryck $ 1, $ 2, $ 3, $ 4}'`:Detta extraherar användarnamnet, använt utrymme, mjuk gräns och hård gräns. Justera fältnumren om din "kvot" -utgång skiljer sig åt (kontrollera sidan "kvot" för mer information).
Metod 2:Använda `find`,` du` och `awk` (för en mer detaljerad rapport)
Denna metod är mer flexibel, så att du kan inkludera andra detaljer, men den visar inte * kvotgränser, bara använt utrymme. Det kräver rotprivilegier.
`` `bash
hitta /hem -typ d -användare "$ (whoami)" -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} slut {för (användare i sum) skriva ut användare, sum [användare]}'
`` `
eller för alla användare:
`` `bash
hitta /hem -typ d -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} slut {för (användare i sum) skriva ut användare, sum [användare]}'
`` `
* `hitta /hem -typ d -användare" $ (whoami) "-printf"%u%s%p \ n "`:hittar alla hemkataloger, skriver användarnamnet (`%u`), storlek i byte (`%s`) och sökväg (`%p`). Byt ut `$ (whoami)` med `-användare alla 'för att lista alla användare; Detta kräver rotprivilegier.
* `awk '{sum [$ 1]+=$ 2} slut {för (användare i sum) utskriftsanvändare, summa [användare]}'`:Detta sammanfattar storleken för varje användare och skriver ut användaren och deras totala diskanvändning.
Metod 3:Kombinera med `sort` och` numfmt` för en formaterad rapport
Vi kan förbättra utgången från metod 2 för bättre läsbarhet:
`` `bash
hitta /hem -typ d -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} slut {för (användare i sum) utskriftsanvändare, summa [användare]}' | sort -k2,2nr | numfmt -till =iec -suffix =b
`` `
* `sortering -k2,2nr`:sorterar utgången numeriskt i omvänd ordning (största användning först) baserat på den andra kolumnen (storlek).
* `numfmt -till =IEC -suffix =b`:formaterar siffrorna med IEC -enheter (kb, mb, gb, etc.) och lägger till ett" b "-suffix för tydlighet.
Viktiga överväganden:
* Root Privileges: För att få information om alla användare måste du köra dessa kommandon med `sudo '.
* kvot aktiverat: Metoder som använder "kvot" fungerar endast om användarkvoter är aktiverade på ditt system. Du kan kontrollera detta med `Repquota -a '(behöver rot).
* filsystem: Dessa kommandon antar att dina hemkataloger är under "/hem". Om ditt system använder en annan plats, justera kommandot "Hitta" i enlighet därmed.
* Felhantering: Skripten tillhandahöll brist på robust felhantering. För produktionsanvändning vill du lägga till kontroller för fel (t.ex. `hitta" misslyckas, analysera problem).
Kom ihåg att anpassa dessa kommandon baserat på dina specifika behov och utgången från kommandona på ditt system. Överväg att skriva ett mer sofistikerat manus med ett skriptspråk som Python eller Bash för avancerade rapporteringsbehov. Detta kan involvera databasintegration för att lagra och fråga kvotinformation regelbundet.