Comando df do Linux: Relatórios de Espaço em Disco

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você explorará o comando df, uma ferramenta crucial para monitorar o uso de espaço em disco em sistemas Linux. Você assumirá o papel de um administrador de sistemas gerenciando um servidor web movimentado, utilizando o df para analisar o uso do disco, identificar potenciais problemas de armazenamento e garantir a operação estável do servidor. Este laboratório foi projetado para iniciantes, então não se preocupe se você for novo no Linux — guiaremos você cuidadosamente por cada etapa.

Compreendendo o Comando df Básico

Como administrador de sistemas, sua primeira tarefa é obter uma visão geral do uso de espaço em disco no seu servidor web. O comando df sem nenhuma opção fornece um instantâneo rápido de todos os sistemas de arquivos montados.

Primeiro, vamos navegar até o diretório do projeto:

cd ~/project

Agora, vamos executar o comando df básico:

df

Dicas: Devido às mudanças dinâmicas no armazenamento de máquinas virtuais, a saída do comando df pode ser inconsistente, e esse detalhe pode ser ignorado.

Você deverá ver uma saída semelhante 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

Vamos detalhar esta saída:

  • Filesystem: Esta coluna mostra o nome do dispositivo ou partição.
  • 1K-blocks: Mostra o tamanho total do sistema de arquivos em blocos de 1 kilobyte.
  • Used: Indica quantos blocos de 1K estão sendo utilizados.
  • Available: Mostra quantos blocos de 1K estão disponíveis.
  • Use%: Mostra a porcentagem do sistema de arquivos que está em uso.
  • Mounted on: Mostra em que ponto da árvore de diretórios o sistema de arquivos está montado.

Observe o sistema de arquivos overlay, comumente usado em ambientes de contêineres. O dispositivo /dev/vdb provavelmente é um disco virtual, e podemos ver um sistema de arquivos tmpfs montado em /mnt/ramdisk, que é um sistema de arquivos baseado em memória RAM.

Tornando a Saída do df Legível para Humanos

A saída padrão do df exibe tamanhos em blocos de 1K, o que pode ser difícil de interpretar rapidamente. Imagine tentar descobrir quantos gigabytes representam 20640796 blocos de 1K! Felizmente, podemos usar a opção -h (que significa "human-readable" ou legível por humanos) para facilitar a compreensão.

Execute o seguinte comando:

df -h

Você verá uma saída parecida com 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

Note como os tamanhos agora estão em GB e MB. Isso é muito mais fácil de entender de relance. Por exemplo, podemos ver rapidamente que nosso sistema de arquivos principal (overlay) tem 20G de tamanho, com apenas 1.3G usados e 19G disponíveis.

Exibindo Tipos de Sistemas de Arquivos

Como administrador de sistemas, é importante conhecer os tipos de sistemas de arquivos em seu servidor. Diferentes tipos possuem características de desempenho e recursos distintos. A opção -T permite visualizar essa informação.

Execute o seguinte comando:

df -T

Você deverá ver algo assim:

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 saída inclui uma nova coluna, Type, que mostra o tipo de cada sistema de arquivos montado. Vamos analisar os tipos que aparecem:

  • overlay: Um tipo de sistema de arquivos de união, frequentemente usado em contêineres.
  • tmpfs: Um sistema de arquivos temporário que reside na memória e/ou na partição de swap.
  • xfs: Um sistema de arquivos com journaling de alto desempenho, usado aqui para a montagem do /etc/hosts.

Entender os tipos de sistemas de arquivos pode ajudar você a diagnosticar problemas e otimizar o desempenho do seu sistema.

Analisando o Uso de Inodes

No Linux, os inodes são estruturas de dados que armazenam informações importantes sobre os arquivos, como permissões, propriedade e localização no disco. Cada arquivo no seu sistema utiliza um inode. Curiosamente, é possível ficar sem inodes mesmo que você ainda tenha muito espaço em disco disponível, o que impediria a criação de novos arquivos. É por isso que monitorar o uso de inodes é fundamental.

Vamos verificar o uso de inodes usando a opção -i:

df -i

A saída será semelhante 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

Vamos detalhar esta saída:

  • Inodes: O número total de inodes para o sistema de arquivos.
  • IUsed: O número de inodes atualmente em uso.
  • IFree: O número de inodes livres.
  • IUse%: A porcentagem de inodes utilizados.

Neste exemplo, podemos ver que nosso sistema de arquivos principal (overlay) está usando apenas 2% de seus inodes disponíveis. Isso é bom — significa que estamos longe de esgotar os inodes, o que garante que poderemos continuar criando arquivos normalmente.

Combinando Opções para uma Análise Abrangente

Agora que exploramos as opções individualmente, vamos combiná-las para obter uma visão mais completa do armazenamento do servidor. Podemos usar múltiplas opções juntas para obter todas as informações necessárias em um único comando.

Execute o seguinte comando:

df -hT

Este comando combina as opções de leitura humana (-h) e tipo de sistema de arquivos (-T).

Você verá algo assim:

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 saída fornece uma visão geral abrangente, incluindo os tipos e tamanhos legíveis. É uma excelente maneira de obter um diagnóstico rápido e detalhado do estado do armazenamento do sistema.

Focando em um Sistema de Arquivos Específico

Como administrador, muitas vezes você precisará verificar o status de um sistema de arquivos específico. Por exemplo, você pode querer checar rapidamente o espaço no sistema de arquivos raiz. Podemos fazer isso especificando o ponto de montagem após o comando df.

Vamos focar no sistema de arquivos raiz. Execute:

df -h /

A saída será parecida com esta:

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

Este comando fornece uma visão rápida do uso de espaço apenas no sistema de arquivos raiz. É particularmente útil quando você está interessado em apenas um ponto específico e não quer ser inundado por informações de outros dispositivos.

Verificando o Espaço Disponível para Diretórios Home

Como parte de suas tarefas de gerenciamento, você deve garantir que os usuários tenham espaço suficiente em seus diretórios pessoais. Em muitos sistemas, esses diretórios ficam localizados em /home. Vamos verificar o espaço disponível lá.

Execute o seguinte comando:

df -h /home

Você poderá ver uma saída como esta:

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

Isso mostra que o diretório /home está no mesmo sistema de arquivos que o diretório raiz (/). Neste caso, vemos que há bastante espaço disponível (19G) para os usuários.

Se você notar que o sistema de arquivos está ficando cheio (um valor alto em Use%), pode ser necessário investigar quais usuários estão consumindo mais espaço ou considerar o aumento da capacidade de armazenamento.

Excluindo Certos Tipos de Sistemas de Arquivos

Às vezes, você pode querer excluir certos tipos de sistemas de arquivos da saída do df. Por exemplo, você pode querer ignorar sistemas de arquivos temporários, que ficam na memória e não representam uso de disco físico. Podemos fazer isso usando a opção -x.

Execute o comando abaixo para excluir os sistemas de arquivos tmpfs:

df -h -x tmpfs

A saída deverá ser:

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

Note que os sistemas tmpfs não estão mais listados. Isso é útil quando você quer focar apenas no uso do disco físico e filtrar sistemas de arquivos virtuais.

Exibindo um Resumo Total

Para uma visão final, vamos exibir um resumo total de todos os sistemas de arquivos. Podemos fazer isso usando a opção --total. Isso é especialmente útil para ver o uso global de disco em todo o sistema.

Execute o seguinte comando:

df -h --total

Você verá algo assim:

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% -

Isso fornece um somatório do uso de disco. A última linha mostra o total de todos os sistemas de arquivos, indicando que, no geral, 18G de 125G estão sendo usados, o que representa cerca de 15% do espaço total disponível.

Resumo

Neste laboratório, você aprendeu a usar o comando df para monitorar e analisar o uso de espaço em disco em um sistema Linux. Você explorou várias opções do comando, incluindo:

  • Uso básico do df
  • Tornar a saída legível com -h
  • Exibir tipos de sistemas de arquivos com -T
  • Analisar o uso de inodes com -i
  • Combinar opções para análises detalhadas
  • Focar em sistemas de arquivos específicos
  • Excluir tipos específicos de sistemas de arquivos com -x
  • Exibir um resumo total com --total

Essas habilidades são fundamentais para uma administração de sistemas eficaz e para garantir o desempenho ideal de seus servidores Linux. À medida que você avança em sua jornada, descobrirá que o comando df é uma ferramenta indispensável em seu arsenal.

Outras opções do df não cobertas neste laboratório incluem:

  • -a: Mostra todos os sistemas de arquivos, incluindo pseudo-sistemas, duplicados e inacessíveis.
  • -k: Exibe tamanhos em kilobytes (padrão).
  • -m: Exibe tamanhos em megabytes.
  • -P: Usa o formato de saída POSIX.
  • --sync: Invoca uma sincronização antes de obter as informações de uso.
  • -t: Limita a listagem a sistemas de arquivos de um tipo específico.

Lembre-se, embora o df seja poderoso, ele é apenas uma das muitas ferramentas disponíveis para monitoramento. Conforme você progredir, poderá explorar outros comandos como du (uso de disco por diretório), ncdu (analisador de uso de disco interativo) e diversas ferramentas de monitoramento de sistema.