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
- t – Alternar diretórios antes dos arquivos durante a classificação.
- c – Alternar a exibição das contagens de itens secundários.
- b – 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!