No linux podemos encontrar o seguinte caso, ter um file system de 2TB com 100% de utilização, porem ao entrar no mesmo e listar o tamanho de seus arquivos, nos deparamos com a situação abaixo:
O que acontece é que havia um processo de backup que não havia sido finalizado ou completado corretamente, com isso, ele havia gerado um arquivo de backup imenso (ocupando os 2.0T), porém não estava lá; (O arquivo foi removido por outro usuário, porém o processo de backup ficou em execução/preso). Neste caso, ele gravou o arquivo no file system, mas como o processo ainda estava preso e atrelado ao arquivo, o arquivo permaneceu no disco, porém invisível aos olhos do usuário.
Para solucionar este problema, precisamos primeiro descobrir onde este processo estava armazenando o arquivo de backup, para poder propriamente limpar ele.
1) Descobrir qual(is) processo está usando o file system. Para isso, usamos o comando lsof.
Exemplo utilizado nesse caso:
# lsof | grep deleted
2) Localizar os arquivos presos, para isso devemos ir ao diretório do processo que está utilizando os arquivos;
Neste caso, o PID do processo era 28803, portanto, o diretório do processo (que fica dentro do /proc/) é o /proc/28803/fd.
3) Listar os arquivos;
Na verdade, o que vamos encontrar aqui são links para os arquivos, vamos identificar estes links para descobrir qual está utilizando os arquivos.
4) Após identificar o arquivo, vamos limpar ele, zerando o seu conteúdo com o comando:
echo "" > XXX
- Após realizar a limpeza, podemos constatar o que o file system encontra-se normalizado.