Sé que df -hl
genera una lista de todas mis particiones con su tamaño, uso como porcentaje y espacio disponible.
Si quisiera generar solo el tamaño y el uso como un porcentaje de sda2
y sda3
, por ejemplo, ¿cómo podría decirle a Linux (Ubuntu) que los verifique, los sume y me los muestre?
ubuntu
command-line
user32398
fuente
fuente
Respuestas:
Para
df
calcular totales, use la--totals
opción. Si desea los totales solo en algunas unidades seleccionadas, especifíquelas como argumentos.Ejemplos (y salida de mi computadora)
Este es el total de todas las monturas locales:
Restringir a algunas unidades (tenga en cuenta que si la ruta especificada no es un punto de montaje exacto, se utiliza el punto de montaje que contiene más cercano [ver nota al final] ):
o usando
dev
nombres:Personalización adicional
Si desea enumerar todos los montajes, excepto los 'especiales', puede usar la
-x
opción para excluir por tipo de partición. (Use la-T
opción para mostrar los tipos).Personalmente, para uso interactivo, utilizo el siguiente alias bash (agregado a
~/.bash_aliases
) para excluir los montajes 'no físicos'.Nota
La especificación de rutas dentro de los puntos de montaje a veces puede generar resultados de forma diferente, especificando la ruta exacta al punto de montaje. Por ejemplo, en mi computadora portátil uso
sshfs
para montar mi servidor de archivos (local).El servidor raíz (
/
) está montado en~/.server-root
. Sin embargo, en el servidor, los discos están montados/disks/*
, lo quedf
(en la computadora portátil) no 'conoce'.Evidentemente,
df
puede enumerar el uso del disco en los diferentes montajes en el servidor, si se le dan las rutas adecuadas. Sin embargo, muestra el mismo "Sistema de archivos" y "Montado en" para todas las rutas, ya que (creo) ese es el único punto de montaje (relacionado con estesshfs
montaje) en la tabla de montaje del núcleo local.Otra cosa: no está realmente relacionado con la pregunta, sino con una respuesta previa a la pregunta.
Sumar los números con un
awk
guión (o similar), como hacen algunas respuestas publicadas anteriormente, no es una buena idea cuando se usa la-h
bandera. Esto se debe a que se requiere un manejo especial. No puede simplemente hacersize+=$2;
un campo que está418M
en una fila y12G
en otra y obtener algo útil de él ...Por ejemplo con
awk
, sumando500M
a10.2G
rendimientos510.2 de qué?
Claramente hay un problema aquí. Entonces, solo como un consejo para recordar , al hacer un cálculo (automatizado) en la salida de
df
(y otros que pueden usar números 'legibles por humanos' ) . Asegúrese de no utilizar el-h
indicador y de que la entrada al script de cálculo esté, en cambio, normalizada (por ejemplo, a bytes, bloques, KB o lo que sea) y realice la 'escala de visualización' al final. No es difícil, en la mayoría de los lenguajes de programación y scripting, agregar algo como:donde el valor está en bytes y el umbral es un valor del orden de 1000. El resultado final de este método es que puede ajustarlo fácilmente para producir valores impresos (excluyendo el prefijo) en un rango deseado y con un número de dígitos significativos para su elegir. En comparación con el caso de las utilidades estándar con
-h
conmutadores, donde el formato suele ser fijo.Por supuesto, este cálculo a menudo se puede hacer más eficiente y / o elegante, pero esa es una pregunta para el lenguaje específico en el que está escrito. Francamente, si se usa en un script de usuario que se ejecuta solo de vez en cuando para ver interactivamente alguna información, la eficiencia no es realmente una preocupación.
fuente
Creo que querías la suma de ambos
size
yuse%
fuente
size+=$1
) para esta pregunta. Este método realmente no es compatible con la-h
opción dedf
.Usaría una herramienta como
awk
:Dónde:
/^\/dev\/sd[ab]/
es un patrón para filtrar solo aquellas líneas que comienzan con/dev/sda
o/dev/sdb
{ sum+=$5 }
agregue el quinto campo para cualquier coincidencia del patrón anteriorPuede encontrar algunas
awk
referencias útiles en la wiki de Awk.info .fuente
fuente
size
,% used
yavailable
. No solo% usado. También @mdpc tiene un mejor método para seleccionar la unidad, pero si desea emparejar el patrón awk puede hacerlo:df -hl | awk '/sda2/{print $2,$5,$4}'
Si lo desea con alertas, lo hago con IFTTT, Telegram y WebHooks (que es todo gratis)
fuente