muestra el espacio en disco usado, incluido el espacio en disco reservado en bash

2 minutos de lectura

Necesito mostrar el espacio en disco usado como (usado + reservado), he creado el siguiente script y planeo agregar usado y reservado, ¿hay una mejor manera de hacerlo?

Necesito mostrar el “total de disco usado disponible” en este formato en GB.

#!/bin/sh

output=`df -h --output=source,size,used,avail /dev/vd* /dev/disk/* -x devtmpfs | grep -v 'Filesystem' | awk '{printf $1 "\t" $2 "\t" $3 "\t" $4 "\n" }'`
while read -r line; do
    diskname=`echo $line|awk -F " " '{print $1}'`
    reserved=`tune2fs -l $diskname|grep -i "Reserved block count"|awk -F ":" '{print $2}'`
    reservedInGB=`echo "$((((( $reserved * 4096 ) / 1024 ) / 1024 )))"|bc -l`
    total=`echo $line|awk -F " " '{print $2}'`
    used=`echo $line|awk -F " " '{print $3}'`
    free=`echo $line|awk -F " " '{print $4}'`
    echo $diskname $total $used $free $reservedInGB
done <<< "$output"

  • En df –output FIELD_LIST opción de espacio en disco reservado que no encontré

    – Ek1234

    06/10/2017 a las 16:09

Mi emulación local no funciona --outputpero intente algo como esto: ajuste las especificaciones.

df -PB 1GB -x devtmpfs /tmp | grep -v ^Filesystem |
   while read mnt size used avail cap disk
   do printf "%-10s %4d %4d %4d\n" $disk $size $used $avail
   done

Tenga en cuenta que los espacios incrustados en el montaje rompen esto, pero maneja la conversión a GB directamente en la generación de datos con df. Como no puedo hacer --output No vi ninguna razón para no usar -P para asegurarse de que el punto de montaje y sus datos salieran en la misma línea. Hacer una lectura, por lo que el reordenamiento también es fácil, siempre que los campos caigan correctamente.

  • La salida no contiene un valor flotante exacto y tampoco se incluye espacio en disco de reserva en la salida.

    – Ek1234

    06/10/2017 a las 17:01

  • Como dije, ajuste a las especificaciones. También tiene una longitud demasiado limitada para el disco. Solo estaba proporcionando un ejemplo general para la elaboración según sea necesario.

    –Paul Hodges

    06/10/2017 a las 18:08

Prueba algo así

df -h --output=source,size,used,avail | tail -n +2 | \
while read line; \
do printf "%s\t%s\n" "$line" \
"your calc with tune2fs and ${line%%[[:space:]]*}";done

  • la salida no contiene reserva+usado en lugar de espacio usado.

    – Ek1234

    06/10/2017 a las 16:59

  • Sí y no contiene cuántos años tiene mi niña también. Te muestro el camino y la otra respuesta también, después de que sea tu trabajo.

    – ctac_

    06/10/2017 a las 18:00


¿Ha sido útil esta solución?