Pesquisa de site

Como analisar o uso do disco no Linux usando ncdu


Você está tendo dificuldade em tentar auditar a utilização do disco em seu sistema Linux? Sei que a maioria dos administradores de sistemas Linux está acostumada a usar o comando du para verificar arquivos que consomem mais espaço em disco ou para encontrar o tamanho real do arquivo. Eu sempre executo o comando abaixo para encontrar arquivos no diretório especificado e classificá-los por tamanho – do maior para o menor:

$ find /dir -type f -exec du -Sh {} + | sort -rh

Você pode limitar ainda mais os resultados de saída canalizando-os para head

$ find  /dir -type f -exec du -Sh {} + | sort -rh | head -n 10

Que imprimirá apenas os 10 principais arquivos

Ou usando apenas o comando du:

$ du -sh /dir/* | sort -hr

Neste guia, apresentarei o Ncdu – um analisador de uso de disco com uma interface ncurses. O Ncdu foi projetado para facilitar a localização de consumidores de espaço em um servidor remoto onde você não tem uma configuração gráfica completa disponível, mas é uma ferramenta útil mesmo em sistemas de desktop normais.

O Ncdu pretende ser rápido, simples e fácil de usar, e deve ser capaz de rodar em qualquer ambiente mínimo do tipo POSIX com o ncurses instalado. Por padrão, ele mostrará o uso do disco de arquivos/diretórios classificados de grande para pequeno:

Instalando o Ncdu no Linux

O pacote Ncdu está disponível na maioria das distribuições Linux em repositórios upstream. Vamos ver como instalar o pacote ncdu no CentOS, nas distribuições da família Debian e no Arch Linux.

Instale o Ncdu no Arch Linux

Utilize os comandos:

$ sudo pacman -S ncdu

resolving dependencies...
looking for conflicting packages...

Packages (1) ncdu-2.1-1

Total Installed Size: 0.11 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring [################] 100%
(1/1) checking package integrity [################] 100%
(1/1) loading package files [################] 100%
(1/1) checking for file conflicts [################] 100%
(1/1) checking available disk space [################] 100%
:: Processing package changes...
(1/1) installing ncdu [################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

Instale o Ncdu no Ubuntu/Debian

No Ubuntu e em todas as outras distribuições da família Debian, instale o ncdu usando o gerenciador de pacotes apt.

sudo apt update
sudo apt install ncdu

Instale o Ncdu no CentOS/Fedora

No CentOS e Fedora, o pacote está disponível no repositório EPEL. Adicione-o primeiro e depois instale o ncdu usando yum.

sudo yum -y install epel-release
sudo yum install ncdu

Usando Ncdu para auditar o uso do disco

Depois que o pacote estiver instalado em seu sistema operacional, basta executar:

$ncdu /dir/

O Ncdu também oferece diversas opções para manipular arquivos e pastas: navegação, classificação e até exclusão:

  • para cima, k – usado para mover o cursor para cima
  • para baixo, j – usado para mover o cursor para baixo
  • direita, enter, l – Abra o diretório selecionado
  • esquerda, <,h  – Isso abre o diretório pai
  • n – ordenar por nome (pressione novamente para ordem decrescente)
  • s – Ordenar por tamanho de arquivo (pressione novamente para ordem decrescente)
  • d – Excluir arquivo ou diretório selecionado
  • g – Mostrar porcentagem e/ou gráfico
  • – Alternar diretórios antes dos arquivos durante a classificação.
  • – Alternar a exibição das contagens de itens secundários.
  • – gera o shell no diretório atual.
  • i  – Mostra informações sobre o item selecionado
  • r – Atualiza/recalcula o diretório atual.
  • q – Sair do ncdu

Exemplo 1: navegar usando

Exemplo 2: mostrar porcentagem e/ou gráfico usando g

Exemplo 2: Excluir arquivo usando d

Exemplo 3: verificar um sistema de arquivos completo

# ncdu -x /

Como a verificação de um diretório grande pode demorar um pouco, você pode verificar um diretório e exportar os resultados para visualização posterior:

# ncdu -1xo- / | gzip >export.gz
# ...some time later:
# zcat export.gz | ncdu -f-

Você também pode exportar um diretório e navegar nele assim que a digitalização for concluída:

# ncdu -o- | tee export.file | ./ncdu -f-

O mesmo é possível com a compactação gzip, mas é um pouco confuso:

# ncdu -o- | gzip | tee export.gz | gunzip | ./ncdu -f-

Para verificar um sistema remotamente, mas navegar pelos arquivos localmente:

# ssh -C user@system ncdu -o- / | ./ncdu -f-

Opções de digitalização Ncdu

Estas opções afetam o progresso da verificação e não têm efeito ao importar informações de diretório de um arquivo.

-x
Não ultrapasse os limites do sistema de arquivos, ou seja, conte apenas arquivos e diretórios no mesmo sistema de arquivos que o diretório que está sendo verificado.

–excluir PATTERN
Excluir arquivos que correspondam a PATTERN. Os arquivos ainda serão exibidos por padrão, mas não serão contabilizados nas estatísticas de uso do disco. Este argumento pode ser adicionado várias vezes para adicionar mais padrões.

-X FILE, –exclude-from FILE
Exclua arquivos que correspondam a qualquer padrão em FILE. Os padrões devem ser separados por uma nova linha.

–exclude-caches
Exclui diretórios contendo CACHEDIR.TAG. Os diretórios ainda serão exibidos, mas não seu conteúdo, e não serão contabilizados nas estatísticas de uso do disco. Veja http://www.brynosaurus.com/cachedir/

Conclusão

Esta ferramenta economizará muito tempo ao trabalhar na auditoria de uso de disco para servidores remotos e sistemas de desktop locais. Aproveite o Ncdu!

Artigos relacionados: