Comando df de Linux: Reporte del espacio en disco

LinuxBeginner
Practicar Ahora

Introducción

En esta práctica de laboratorio, explorarás el comando df, una herramienta fundamental para supervisar el uso del espacio en disco en sistemas Linux. Asumirás el papel de un administrador de sistemas encargado de gestionar un servidor web con mucho tráfico, utilizando df para analizar el uso del disco, identificar posibles problemas de almacenamiento y garantizar el funcionamiento fluido del servidor. Esta sesión está diseñada para principiantes, así que no te preocupes si eres nuevo en Linux: te guiaremos cuidadosamente en cada paso.

Comprensión del comando df básico

Como administrador de sistemas, tu primera tarea es obtener una visión general del uso del espacio en disco en tu servidor web. El comando df sin ninguna opción proporciona una instantánea rápida de todos los sistemas de archivos montados.

Primero, naveguemos al directorio del proyecto:

cd ~/project

Ahora, ejecutemos el comando df básico:

df

Consejos: Debido a los cambios dinámicos en el almacenamiento de las máquinas virtuales, la salida del comando df puede ser inconsistente; este detalle puede ignorarse.

Deberías ver una salida similar a esta:

Filesystem     1K-blocks     Used Available Use% Mounted on
overlay         20971520  1314600  19656920   7% /
tmpfs              65536        0     65536   0% /dev
tmpfs            4068320        0   4068320   0% /sys/fs/cgroup
shm                65536        0     65536   0% /dev/shm
/dev/vdb       104806400 17442788  87363612  17% /etc/hosts
tmpfs             102400    51200     51200  50% /mnt/ramdisk

Desglosemos esta información:

  • Filesystem: Esta columna muestra el nombre del dispositivo o partición.
  • 1K-blocks: Muestra el tamaño total del sistema de archivos en bloques de 1 kilobyte.
  • Used: Indica cuántos bloques de 1K están en uso.
  • Available: Muestra cuántos bloques de 1K están disponibles.
  • Use%: Muestra el porcentaje del sistema de archivos que está siendo utilizado.
  • Mounted on: Indica en qué parte del árbol de directorios está montado el sistema de archivos.

Observa el sistema de archivos overlay, que se utiliza comúnmente en entornos de contenedores. El dispositivo /dev/vdb es probablemente un disco virtual, y podemos ver un sistema de archivos tmpfs montado en /mnt/ramdisk, que es un sistema de archivos basado en la memoria RAM.

Formato de salida legible para humanos

La salida predeterminada de df muestra los tamaños en bloques de 1K, lo cual puede ser difícil de interpretar rápidamente. ¡Imagina intentar calcular cuántos gigabytes representan 20640796 bloques de 1K! Afortunadamente, podemos usar la opción -h (que significa "human-readable" o legible para humanos) para facilitar la comprensión.

Ejecuta el siguiente comando:

df -h

Deberías ver una salida similar a esta:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
tmpfs            64M     0   64M   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/vdb        100G   17G   84G  17% /etc/hosts
tmpfs           100M   50M   50M  50% /mnt/ramdisk

Observa cómo los tamaños aparecen ahora en GB y MB. Esto es mucho más sencillo de entender de un vistazo. Por ejemplo, podemos ver rápidamente que nuestro sistema de archivos principal (overlay) tiene un tamaño de 20G, con solo 1.3G utilizados y 19G disponibles.

Visualización de los tipos de sistemas de archivos

Como administrador de sistemas, es importante conocer los tipos de sistemas de archivos en tu servidor. Los diferentes tipos tienen características y rendimientos distintos. La opción -T te permite visualizar esta información.

Ejecuta el siguiente comando:

df -T

Deberías ver una salida similar a esta:

Filesystem     Type    1K-blocks     Used Available Use% Mounted on
overlay        overlay  20971520  1314600  19656920   7% /
tmpfs          tmpfs       65536        0     65536   0% /dev
tmpfs          tmpfs     4068320        0   4068320   0% /sys/fs/cgroup
shm            tmpfs       65536        0     65536   0% /dev/shm
/dev/vdb       xfs     104806400 17442728  87363672  17% /etc/hosts
tmpfs          tmpfs      102400    51200     51200  50% /mnt/ramdisk

Esta salida incluye una nueva columna, Type, que muestra el tipo de sistema de archivos para cada montaje. Veamos los tipos que aparecen:

  • overlay: Es un tipo de sistema de archivos de unión, usado frecuentemente en contenedores.
  • tmpfs: Es un sistema de archivos temporal que reside en la memoria volátil o en la partición de intercambio (swap).
  • xfs: Es un sistema de archivos de alto rendimiento con registro por diario (journaling), utilizado aquí para el montaje de /etc/hosts.

Conocer los tipos de sistemas de archivos puede ayudarte a diagnosticar problemas y optimizar el rendimiento de tu sistema.

Análisis del uso de Inodos

En Linux, los inodos son estructuras de datos que almacenan información importante sobre los archivos, como sus permisos, propiedad y ubicación en el disco. Cada archivo en tu sistema utiliza un inodo. Curiosamente, es posible quedarse sin inodos incluso si todavía tienes mucho espacio en disco disponible, lo que te impediría crear nuevos archivos. Por eso, supervisar el uso de inodos es crucial.

Comprobemos el uso de inodos con la opción -i:

df -i

Deberías ver una salida similar a esta:

Filesystem       Inodes  IUsed    IFree IUse% Mounted on
overlay        52428800 539001 51889799    2% /
tmpfs           1017080    206  1016874    1% /dev
tmpfs           1017080     17  1017063    1% /sys/fs/cgroup
shm             1017080      1  1017079    1% /dev/shm
/dev/vdb       52428800 539001 51889799    2% /etc/hosts
tmpfs           1017080      2  1017078    1% /mnt/ramdisk

Desglosemos esta salida:

  • Inodes: El número total de inodos disponibles en el sistema de archivos.
  • IUsed: El número de inodos actualmente en uso.
  • IFree: El número de inodos libres.
  • IUse%: El porcentaje de inodos utilizados.

En este ejemplo, podemos ver que nuestro sistema de archivos principal (overlay) solo está utilizando el 2% de sus inodos disponibles. Esto es positivo: significa que estamos lejos de agotar los inodos, lo cual evitaría la creación de nuevos archivos aunque tuviéramos espacio físico en el disco.

Combinación de opciones para un análisis exhaustivo

Ahora que hemos explorado las opciones individuales, combinémoslas para obtener una visión más completa del almacenamiento de nuestro servidor. Podemos usar varias opciones juntas para obtener toda la información necesaria en un solo comando.

Ejecuta el siguiente comando:

df -hT

Este comando combina la lectura humana (-h) y el tipo de sistema de archivos (-T).

Deberías ver una salida similar a esta:

Filesystem     Type     Size  Used Avail Use% Mounted on
overlay        overlay   20G  1.3G   19G   7% /
tmpfs          tmpfs     64M     0   64M   0% /dev
tmpfs          tmpfs    3.9G     0  3.9G   0% /sys/fs/cgroup
shm            tmpfs     64M     0   64M   0% /dev/shm
/dev/vdb       xfs      100G   17G   84G  17% /etc/hosts
tmpfs          tmpfs    100M   50M   50M  50% /mnt/ramdisk

Esta salida proporciona una visión integral de tus sistemas de archivos, incluyendo sus tipos y tamaños legibles. Es una excelente manera de obtener una instantánea rápida pero detallada del estado del almacenamiento de tu sistema.

Enfoque en un sistema de archivos específico

Como administrador de sistemas, a menudo necesitarás comprobar el estado de un sistema de archivos concreto. Por ejemplo, podrías querer revisar rápidamente el espacio en el sistema de archivos raíz. Podemos hacer esto especificando el punto de montaje después del comando df.

Centrémonos en el sistema de archivos raíz. Ejecuta el siguiente comando:

df -h /

Deberías ver una salida similar a esta:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /

Este comando te ofrece una vista rápida del uso del espacio exclusivamente en el sistema de archivos raíz. Es particularmente útil cuando solo te interesa un punto de montaje específico y no necesitas información sobre todos los demás.

Comprobación del espacio disponible para los directorios de usuario

Como parte de tus tareas de gestión del servidor, debes asegurarte de que los usuarios tengan suficiente espacio en sus directorios personales. En muchos sistemas, estos directorios se encuentran en /home. Comprobemos el espacio disponible en dicho directorio.

Ejecuta el siguiente comando:

df -h /home

Podrías ver una salida similar a esta:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /

Esto indica que el directorio /home se encuentra en el mismo sistema de archivos que el directorio raíz (/). En este caso, vemos que hay suficiente espacio disponible (19G) para los directorios de los usuarios.

Si observas que el sistema de archivos se está llenando (un valor alto en Use%), es posible que debas investigar qué usuarios están consumiendo más espacio o considerar aumentar la capacidad de almacenamiento.

Exclusión de ciertos tipos de sistemas de archivos

A veces, es posible que desees excluir ciertos tipos de sistemas de archivos de la salida de df. Por ejemplo, podrías querer omitir los sistemas de archivos temporales, que se almacenan en memoria y no representan el uso del disco físico. Podemos lograr esto usando la opción -x.

Ejecuta el siguiente comando para excluir los sistemas de archivos tmpfs:

df -h -x tmpfs

Deberías ver una salida similar a esta:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
/dev/vdb        100G   17G   84G  17% /etc/hosts

Observa que los sistemas de archivos tmpfs ya no aparecen en la lista. Esto es muy útil cuando solo te interesa el uso del disco físico y quieres filtrar los sistemas de archivos virtuales.

Visualización de un resumen total

Como revisión final, mostremos un resumen total de todos los sistemas de archivos. Podemos hacerlo utilizando la opción --total. Esto es especialmente útil cuando quieres ver el uso global del disco en todos los sistemas de archivos combinados.

Ejecuta el siguiente comando:

df -h --total

Deberías ver una salida similar a esta:

Filesystem      Size  Used Avail Use% Mounted on
overlay          20G  1.3G   19G   7% /
tmpfs            64M     0   64M   0% /dev
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/vdb        100G   17G   84G  17% /etc/hosts
tmpfs           100M   50M   50M  50% /mnt/ramdisk
total           125G   18G  107G  15% -

Esto proporciona un resumen total del uso del disco. La última línea muestra el total acumulado, indicando que, en conjunto, se están utilizando 18G de 125G, lo que representa aproximadamente el 15% del espacio total disponible.

Resumen

En esta práctica de laboratorio, has aprendido a utilizar el comando df para supervisar y analizar el uso del espacio en disco en un sistema Linux. Has explorado varias opciones del comando df, incluyendo:

  • Uso básico de df.
  • Formato de salida legible para humanos con -h.
  • Visualización de tipos de sistemas de archivos con -T.
  • Análisis del uso de inodos con -i.
  • Combinación de opciones para un análisis exhaustivo.
  • Enfoque en sistemas de archivos específicos.
  • Exclusión de ciertos tipos de sistemas de archivos con -x.
  • Visualización de un resumen total con --total.

Estas habilidades son fundamentales para una administración de sistemas eficaz y para garantizar el rendimiento óptimo de tus servidores Linux. A medida que avances en tu camino como administrador, descubrirás que el comando df es una herramienta invaluable en tu repertorio.

Otras opciones de df no cubiertas en esta práctica incluyen:

  • -a: Muestra todos los sistemas de archivos, incluyendo los pseudo-sistemas, duplicados e inaccesibles.
  • -k: Muestra los tamaños en kilobytes (predeterminado).
  • -m: Muestra los tamaños en megabytes.
  • -P: Utiliza el formato de salida POSIX.
  • --sync: Invoca una sincronización antes de obtener la información de uso.
  • -t: Limita el listado a sistemas de archivos de un tipo específico.

Recuerda que, aunque df es potente, es solo una de las muchas herramientas disponibles para supervisar el uso del disco. A medida que progreses en Linux, es recomendable explorar otros comandos como du (uso de disco por directorio), ncdu (uso de disco con interfaz NCurses) y diversas herramientas de monitorización del sistema.