Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> software >> Software Home Recording >> .

In Linux Come è stato possibile generare un report della quota utente?

Non esiste un singolo comando per generare un "rapporto" perfettamente formattato delle quote utente sulle directory home in Linux. L'approccio dipende dalle informazioni di cui hai bisogno nel tuo rapporto e da come vuoi formattare. Ecco alcuni metodi, che combinano comandi Linux standard:

Metodo 1:usando `quota` e` awk` (per un rapporto di base)

Questo metodo funziona se le quote sono abilitate sul tuo sistema. Mostra l'utilizzo e i limiti per ogni utente.

`` `Bash

quota -v | awk '{stampa $ 1, $ 2, $ 3, $ 4}'

`` `

* `Quota -v`:mostra le informazioni sulla quota verbosa per l'utente corrente. Per vedere le informazioni per tutti gli utenti, utilizzare `sudo quota -v` (richiede privilegi di root).

* `awk '{stampa $ 1, $ 2, $ 3, $ 4}'`:questo estrae il nome utente, lo spazio usato, il limite soft e il limite rigido. Regola i numeri di campo se l'output `Quota` differisce (controlla la pagina Man` Quota` per i dettagli).

Metodo 2:usando `find`,` du` e `awk` (per un rapporto più dettagliato)

Questo metodo è più flessibile, consentendo di includere altri dettagli, ma non * mostra limiti di quota, solo spazio usato. Richiede privilegi di radice.

`` `Bash

Find /Home -Type d -User "$ (whoami)" -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} end {for (utente in sum) stampa utente, somma [utente]}'

`` `

o per tutti gli utenti:

`` `Bash

Find /Home -Type d -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} end {for (utente in sum) stampa utente, somma [utente]}'

`` `

* `Find /Home -Type d -User" $ (whoami) "-printf"%u%s%p \ n "`:trova tutte le directory domestiche, stampa il nome utente (`%u`), le dimensioni nei byte (`%s`) e il percorso (`%p`). Sostituisci `$ (whoami)` con `-user a tutti 'per elencare tutti gli utenti; Ciò richiede privilegi di radice.

* `awk '{sum [$ 1]+=$ 2} end {for (utente in sum) Utente, somma [utente]}'`:questo riassume le dimensioni per ciascun utente e stampa l'utente e il loro utilizzo totale del disco.

Metodo 3:combinazione con `ordin` e `numfmt` per un rapporto formattato

Possiamo migliorare l'output del metodo 2 per una migliore leggibilità:

`` `Bash

Find /Home -Type d -printf " %u %s %p \ n" | awk '{sum [$ 1]+=$ 2} end {for (utente in sum) stampare utente, somma [user]}' | ordina -k2,2nr | NUMFMT - -TO =IEC - -SUFFIX =B.

`` `

* `Ordina -k2,2nr`:ordina l'uscita numericamente in ordine inverso (prima utilizzo prima) in base alla seconda colonna (dimensione).

* `NUMFMT - -TO =IEC - -SUFFIX =B`:formatta i numeri usando le unità IEC (KB, MB, GB, ecc.) E aggiunge un suffisso" B "per chiarezza.

Considerazioni importanti:

* Privilegi root: Per ottenere informazioni su tutti gli utenti, dovrai eseguire questi comandi con `sudo`.

* quota abilitata: I metodi che utilizzano la quota "funzionano solo se le quote utente sono abilitate sul sistema. Puoi verificarlo con `Repquota -a` (ha bisogno di root).

* FileSystem: Questi comandi presumono che le tue directory di casa siano sotto `/home`. Se il sistema utilizza una posizione diversa, regola il comando `Trova 'di conseguenza.

* Gestione degli errori: Gli script forniti non hanno una robusta gestione degli errori. Per l'uso della produzione, vorresti aggiungere controlli per errori (ad es. Problemi di analisi "Trova".

Ricorda di adattare questi comandi in base alle tue esigenze specifiche e all'output dei comandi sul sistema. Considera di scrivere uno script più sofisticato usando un linguaggio di scripting come Python o Bash per le esigenze di reporting avanzate. Ciò potrebbe comportare regolarmente l'integrazione del database per archiviare e interrogare le informazioni sulle quote.

 

software © www.354353.com