Tentando entender mais sobre o Linux e por que nosso espaço em disco continua cheio de quê. Pouca ou nenhuma experiência com Linux, então tenha paciência comigo
/dev/sda2 está montado em / e este disco continua funcionando cheio
Se eu verificar um nível mais profundo, posso ver
Agora há esses 18 GB em /
Como posso ver o que realmente está ocupando esse espaço? Pastas como /etc /home /var posso verificar o conteúdo, mas não consigo ver quais arquivos estão diretamente no /
Todas as pastas normais que seriam executadas cheias, como cache ou logs ou /tmp, são verificadas e esvaziadas e ainda assim o disco está em 96%, o que eu acho que não é normal.
Quaisquer outras dicas também são bem-vindas, é claro.
Desde já, obrigado.
EDITAR
O comando ls -lst / fornece o seguinte resultado
Não tenho certeza do que fazer com isso, mas isso significa que essa coisa de 'troca' ocupa a maior parte do espaço? Ou isso pode ser ignorado.
Use algo como ncdu para visualizar o uso do espaço em disco. Existem outras ferramentas semelhantes também, mas esta funciona sem UI e funciona muito bem!
https://dev.yorhel.nl/ncdu
Teria sido útil se você tivesse fornecido os comandos reais que forneceram esses resultados (parece ser df & du).
Parece que há 18G usado em /.
Isso é ruim.
Você NUNCA deve adicionar arquivos lá. Isso não apenas cria problemas com o gerenciamento do armazenamento, mas também implica que você está executando tarefas de processamento de dados ou registrando uma raiz. Também é ruim.
ls -lst /
seria um bom ponto de partida.Você não verá os arquivos que foram excluídos (mas ainda estão abertos).
lsof | grep 'deleted'
pode ajudar se você não vê o que esperals
Etapa 1, veja o que você pode encontrar no sistema de arquivos ativo:
du -xm / | sort -n | tail -40
du
no sistema de arquivos com problema (/
),-h
em ambos)Se encontrar algo grande, você poderá examiná-lo e removê-lo. Se não encontrar os 28G de dados correspondentes, provavelmente uma das duas coisas está acontecendo:
Abra arquivos excluídos. Enquanto um arquivo de log ou outro estiver aberto, a exclusão o removerá do diretório (não mais visível para
du
), mas não do sistema de arquivos. Você pode verificar aqueles comsudo lsof -nP +L1
. (consulte https://unix.stackexchange.com/questions/68523/find-and-remove-large-files-that-are-open-but-have-been-deleted ). Se esta for uma máquina de usuário único e não for muito onerosa, considere apenas reinicializar para desconectar todos os identificadores de arquivos abertos e permitir que o sistema de arquivos libere espaço.Ocultação do ponto de montagem. Se houver dados (por exemplo) nos diretórios
var
outmp
, esses dados ficarão ocultos do acesso quando os/var
sistemas/tmp
de arquivos e forem montados no topo. Você pode desmontá-los e examiná-los um por um ou dar uma olhada em https://unix.stackexchange.com/questions/4426/access-to-original-contents-of-mount-point . Usando essa técnica, você pode remontar uma cópia do/
, executar du nessa cópia e examinar abaixo dos pontos de montagem.Sempre que isso acontece comigo, faço uma recursão manual, algo como:
Então, quando for aparente que o inchaço vem de (digamos:) /var, repito o processo:
Enxágue e repita até chegar ao local do problema.
Obviamente, o que foi dito acima poderia ser melhorado como algum tipo de script; mas de modo geral, se a unidade estiver cheia; então você terá apenas o pequeno espaço reservado para o root e muitos programas não serão executados se precisarem de espaço disponível no disco.
Às vezes, alguns arquivos foram excluídos, mas o processo ainda abre o arquivo, execute este comando talvez descubra o processo
E então mate-o
Estas são as etapas de verificação detalhadas
Acho que a questão mais óbvia de por que só podemos ver 18 GB usados em
du
28 GB usadosdf
está nadu
imagem.Se você olhar atentamente para cima, verá a metade inferior do início de algo como:
Resumindo,
du
não foi possível ler todo o disco. Refaça odu
como root, possivelmente com quaisquer outras alterações de segurança necessárias para permitir que ele veja tudo.Se isso não explicar tudo, poste o que você obteve. Mas faça isso como texto, não como imagem, e inclua o comando inicial e quaisquer erros que surjam.
Você parece ter perdido 10G. Você pode tentar forçar um
fsck
no disco. Muitas distribuições modernas desabilitam-no completamente em sistemas de arquivos com diário, mas eu pessoalmente tenho visto muita corrupção mesmo com o diário para permitir que ele seja desabilitado.Você precisa de:
fsck
.Se houver muitos problemas, eu recomendaria usar o tune2fs para alterar os requisitos do fsck para o disco.
/var
está consumindo 8,7G. Confira/var/logs
. Você pode usar ferramentas como o baobá para entender rapidamente o que está ocupando muito espaço.Meu palpite é que o systemd grava logs com muita frequência. Experimente o seguinte:
Se o espaço liberar,
SystemMaxUse=100M
defina/etc/systemd/journald.conf
.