Como gravar o tamanho máximo de uma pasta?

2

Pacotes são descompactados e compilados em um sistema de teste em /tmp/test .

Eu preciso obter o tamanho máximo que o diretório tinha a qualquer momento durante todas essas etapas.

No momento, eu me ajudo gravando o tamanho com

du -sch /tmp/test >> /tmp/size.txt 

em um loop. Mas esta é uma solução muito suja e não é precisa. Pode ser que o computador esteja muito ocupado em /tmp/test e o du perca o tamanho do pico. Existe uma solução elegante?

Os sistemas de arquivos disponíveis são ext ou btrfs, se isso ajudar.

Um leitor pediu exemplos de uso :

  • Ao preparar pacotes para o Gentoo Linux, eu preciso saber quanto espaço é necessário durante a compilação. Para alguns pacotes como Firefox, Boost ou LibreOffice, é muito importante que o pacote verifique se há espaço livre suficiente disponível.

  • Eu escrevi scripts que criam muitos arquivos temporários. Seria interessante monitorar o tamanho da pasta.

Atualização: Entretanto, encontrei sysdig que parece promissor para esta tarefa, mas ainda não obtive um tamanho de pasta.

    
por Jonas Stein 20.11.2017 / 00:50

2 respostas

1

Uma possibilidade pode ser monitorar eventos do sistema de arquivos e executar alguns comandos de registro na criação de arquivos e exclusão de arquivos. Existem algumas ferramentas que provavelmente facilitariam essa abordagem, como inotify , fswatch ou a estrutura de auditoria do Linux . Você pode tentar registrar o espaço em disco total após cada evento ou apenas registrar a alteração no espaço em disco e, em seguida, usar os logs para calcular o tamanho máximo. Veja, por exemplo, a seguinte postagem do SuperUser:

Uma abordagem diferente vem do seguinte post:

Lá, a sugestão é feita para montar o diretório em questão em sua própria partição e, em seguida, executar iostat nessa partição. Isso deve permitir que você registre continuamente eventos IO nesse diretório.

Para uma discussão mais detalhada sobre o monitoramento de IO do disco, você pode consultar a seguinte postagem:

por 20.11.2017 / 01:25
-2

Programe um script para cada 1 minuto

*/1 *. *. *. * script path

O script deve ser o seguinte

#!/bin/bash
du -sch /tmp/|sed -n '1p' >>outputfile

Depois de algum tempo, classifique-o e obtenha o maior tamanho.

    
por 20.11.2017 / 03:33