Método 1:Uso de `cuota` y` awk` (para un informe básico)
Este método funciona si las cuotas están habilitadas en su sistema. Muestra un uso y límites para cada usuario.
`` `Bash
Cuota -v | Awk '{imprimir $ 1, $ 2, $ 3, $ 4}'
`` `` ``
* `cuota -v`:muestra información de cuota detallada para el usuario actual. Para ver la información para todos los usuarios, use `cuota sudo -v` (requiere privilegios raíz).
* `Awk '{imprima $ 1, $ 2, $ 3, $ 4}'`:Esto extrae el nombre de usuario, el espacio usado, el límite suave y el límite duro. Ajuste los números de campo si su salida `cuota` difiere (verifique la página del hombre` cuota 'para más detalles).
Método 2:Uso de `find`,` du` y `awk` (para un informe más detallado)
Este método es más flexible, lo que le permite incluir otros detalles, pero * no * muestra los límites de cuotas, solo se usó espacio. Requiere privilegios de raíz.
`` `Bash
Find /Home -Type d -user "$ (Whoami)" -printf " %U %s %P \ n" | AWK '{sum [$ 1]+=$ 2} end {for (usuario en suma) usuarios de impresión, suma [usuario]}'
`` `` ``
o para todos los usuarios:
`` `Bash
Find /Home -Type D -Printf " %U %S %P \ n" | AWK '{sum [$ 1]+=$ 2} end {for (usuario en suma) usuarios de impresión, suma [usuario]}'
`` `` ``
* `Find /Home -Type D -user" $ (Whoami) "-Printf"%U%S%P \ n "`:Encuentra todos los directorios del hogar, imprime el nombre de usuario (`%u`), tamaño en bytes (`%s`) y ruta (`%P`). Reemplace `$ (WHOAMI)` con `-User All 'para enumerar a todos los usuarios; Esto requiere privilegios de raíz.
* `Awk '{sum [$ 1]+=$ 2} end {para (usuario en suma) Usuario de impresión, Sum [usuario]}'`:Esto suma los tamaños para cada usuario e imprime al usuario y su uso total de disco.
Método 3:Combinando con `sort` y` numfmt` para un informe formateado
Podemos mejorar la salida del método 2 para una mejor legibilidad:
`` `Bash
Find /Home -Type D -Printf " %U %S %P \ n" | AWK '{sum [$ 1]+=$ 2} end {for (usuario en suma) user de impresión, suma [usuario]}' | sort -k2,2nr | numfmt - -to =iec - -suffix =b
`` `` ``
* `Sort -K2,2Nr`:Ordena la salida numéricamente en orden inverso (primero el uso más grande) según la segunda columna (tamaño).
* `numfmt - -to =iec - -suffix =b`:formatea los números usando unidades IEC (KB, MB, GB, etc.) y agrega un sufijo" B "para mayor claridad.
Consideraciones importantes:
* Privilegios raíz: Para obtener información sobre todos los usuarios, deberá ejecutar estos comandos con 'sudo'.
* Cuota habilitada: Los métodos que usan 'cuota' solo funcionan si las cuotas de los usuarios están habilitadas en su sistema. Puede verificar esto con `Repquota -a` (necesita raíz).
* Sistema de archivos: Estos comandos suponen que sus directorios de inicio están en `/Home`. Si su sistema usa una ubicación diferente, ajuste el comando `Find` en consecuencia.
* Manejo de errores: Los scripts proporcionaron un manejo de errores robusto. Para el uso de la producción, desea agregar cheques por errores (por ejemplo, `` Find 'fallas, problemas de análisis).
Recuerde adaptar estos comandos en función de sus necesidades específicas y la salida de los comandos de su sistema. Considere escribir un script más sofisticado utilizando un lenguaje de secuencias de comandos como Python o Bash para las necesidades avanzadas de informes. Esto podría implicar la integración de la base de datos para almacenar y consultar la información de la cuota regularmente.