Utilizzo totale del disco per un determinato utente


11

Vorrei vedere l'utilizzo totale del disco per me stesso su un determinato file system. Ho eseguito il comando

du -h ~my_user_name

Tuttavia, questo elenca tutte le directory di proprietà di my_user_name. Vorrei ottenere la somma totale di tutte queste informazioni. Qual è l'opzione appropriata da passare? Provai

du -h -c ~my_user_name

ma non ha funzionato.

Risposte:



9

Du ti mostrerà solo i totali per cartella, non per utente.

Ciò potrebbe funzionare se si desidera la dimensione totale di, diciamo, /home/example_user/e se solo quell'utente_esempio ha file in quella cartella. Se in altri utenti sono presenti dei file, ciò non produrrà la dimensione di tutti i file di proprietà dell'utente, ma la dimensione totale di tutti i file in quella cartella.

Per ottenere le informazioni per utente:

  1. Se la quota è abilitata, utilizzare questi comandi.
  2. Usa find per camminare attraverso tutte le directory in cui vuoi contare i tuoi file. Usa l'UID per selezionare solo i tuoi file e mantenere un array associativo in awk per contare i totali.

find /path/to/search/ -user username_whos_files_to_count -type f -printf "%s\n" | awk '{t+=$1}END{print t}'

Nota, questo utilizza una GNU per trovare un'estensione specifica.

  • Il primo comando cerca oltre tutti i file e le directory in /path/to/search/.
  • -type fassicurati di selezionare solo i file, altrimenti stai contando anche la dimensione delle directory. (Prova a creare una cartella vuota. Probabilmente utilizzerà spazio su disco 4k).
  • -user username_whos_files_to_count seleziona i risultati solo da un utente
  • -printf "%s\n" stamperà la dimensione.

Se esegui solo la prima parte di questo, otterrai un elenco di numeri. Quelle sono le dimensioni del file. (Tutto il resto viene rimosso, solo la dimensione viene stampata grazie al comando di stampa% s.)

Possiamo quindi aggiungere tutti quei numeri per ottenere un riepilogo. Nell'esempio, questo viene fatto con awk.


+1 buon punto, grazie! la risposta qui sotto era esattamente quello che volevo. la distinzione utente / cartella non conta molto nel mio caso
Alex,

Bello. du -schè un comando facile spesso usato. Rintracciare chi possedeva ciò che quando le cose erano mescolate è molto più difficile, sebbene possa essere fatto come una fodera. L'ho usato una volta, ma ho avuto problemi a ricostruirlo oggi.
Hennes,

Mi ha aiutato molto, spiegazione perfetta
Babin Lonston,

2

Per trovare tutto l'uso da parte di un utente specifico, un buon comando è:

find -user $USER -type f -exec du -chs {} +

È possibile modificare ulteriormente a seconda delle esigenze specifiche, ad esempio spesso desidero riassumere l'uso per cartella e le seguenti funzioni funzionano bene:

find . -maxdepth 1 -user $USER -type d ! -path . -exec du -chs {} +

Questo trova solo le directory su un livello, limita l'utente, esclude la directory principale e stampa ogni directory e un riepilogo alla fine.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.