Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako v systéme Linux môžete vygenerovať správu o dome používateľa?

Neexistuje žiadny jediný príkaz na vygenerovanie dokonale naformátovanej „správy“ kvót používateľov v domácich adresároch v Linuxe. Tento prístup závisí od toho, aké informácie potrebujete vo svojej správe a ako chcete, aby sa naformátoval. Tu je niekoľko metód, ktoré kombinujú štandardné príkazy Linux:

Metóda 1:Použitie `kvóty a` awk` (pre základnú správu)

Táto metóda funguje, ak sú kvóty povolené vo vašom systéme. Ukazuje využitie a limity pre každého používateľa.

`` `Bash

kvóta -v | awk '{Print $ 1, $ 2, $ 3, $ 4}' '

`` `

* `kvóta -v`:zobrazuje informácie o podrobných kvótach pre aktuálneho používateľa. Ak chcete zobraziť informácie pre všetkých používateľov, použite `sudo kvóta -v` (vyžaduje koreňové výsady).

* `awk '{Print $ 1, $ 2, $ 3, $ 4}'`:Týmto extrahuje používateľské meno, použitý priestor, mäkký limit a tvrdý limit. Upravte čísla poľa, ak sa váš výstup `kvóta líši (podrobnosti nájdete na stránke„ Man -Quota` Man).

Metóda 2:Použitie `find`,` du` a `awk` (pre podrobnejšiu správu)

Táto metóda je flexibilnejšia, čo vám umožňuje zahrnúť ďalšie podrobnosti, ale nie je * ukazuje limity kvót, použitý iba priestor. Vyžaduje si to koreňové výsady.

`` `Bash

nájsť /home -type d -user "$ (whoami)" -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} end {for (user in sum) tlačiť používateľa, sum [user]}' '

`` `

alebo pre všetkých používateľov:

`` `Bash

Nájdite /home -type d -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} end {for (user in sum) tlačiť používateľa, sum [user]}' '

`` `

* `find /home -type d -User" $ (whoami) "-printf"%u%s%p \ n "`:Nájde všetky domáce adresáre, tlačí používateľské meno (`%u`), veľkosť v bajtoch (`%s`) a cesta (`%p`). Nahradiť `$ (whoami)` za `-user all`, aby ste uviedli všetkých používateľov; Vyžaduje si to koreňové výsady.

* `awk '{sum [$ 1]+=$ 2} end {for (užívateľ v sum) tlačenie používateľa, súčet [user]}'`:To zhŕňa veľkosti pre každého používateľa a vytlačí používateľa a ich celkové využitie disku.

Metóda 3:Kombinácia s `zoradením` a` numfmt` pre formátovanú správu

Môžeme vylepšiť výstup metódy 2 pre lepšiu čitateľnosť:

`` `Bash

Nájdite /home -type d -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} end {for (užívateľ v sum) tlače používateľa, sum [user]}' | Sort -k2,2nr | numfmt - -to =IEC -Suffix =B

`` `

* `zoradenie -k2,2nr`:výstup numericky zoradí v opačnom poradí (najväčšie použitie ako prvý) na základe druhého stĺpca (veľkosť).

* `NUMFMT - -TO =IEC -SUFFIX =B`:Formátuje čísla pomocou jednotiek IEC (KB, MB, GB atď.) A pridáva kvôli prehľadnosti príponu„ B “.

Dôležité úvahy:

* Root Equestionges: Ak chcete získať informácie o všetkých používateľoch, budete musieť spustiť tieto príkazy s `sudo`.

* kvóta povolená: Metódy používajúce `Quota` fungujú iba vtedy, ak sú vo vašom systéme povolené kvóty používateľa. Môžete to skontrolovať pomocou `repquota -a` (potrebuje root).

* Súborový systém: Tieto príkazy predpokladajú, že vaše domáce adresáre sú pod `/Home`. Ak váš systém používa iné umiestnenie, podľa toho upravte príkaz `find`.

* Manipulácia s chybami: Poskytnuté skripty chýba robustné spracovanie chýb. Na použitie výroby by ste chceli pridať kontroly chýb (napr. „Nájsť“, problémy s analýzou).

Nezabudnite prispôsobiť tieto príkazy na základe vašich konkrétnych potrieb a výstupu príkazov vo vašom systéme. Zvážte písanie sofistikovanejšieho skriptu pomocou skriptovacieho jazyka, ako je Python alebo Bash pre pokročilé potreby podávania správ. Mohlo by to zahŕňať integráciu databázy na pravidelné ukladanie a dopytovanie informácií o kvótach.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené